blob: 89f042440769e0d93585be7f26ffe8e8dccaba56 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
TEMPDIR := `mktemp -d`
BUILDDIR := "_build"
ALL_VERSIONS := BUILDDIR / "ALL_VERSIONS"
NEW_VERSION := BUILDDIR / "NEW_VERSION"
CURRENT_VERSION := BUILDDIR / "CURRENT_VERSION"
COMMIT := `git rev-parse --short HEAD`
TAGS := `git tag -l`
alias dr := debug-run
alias dt := debug-test
default:
@just --choose
docker-build:
new_ver=$(cat {{ NEW_VERSION }}); \
docker build --build-arg="version=$new_ver" -t go-git-server:$new_ver .
docker-run:
docker run -it --rm -p 8080:8080 --volume $(pwd)/tokens.csv:/opt/app/etc/tokens.csv go-git-server
clean:
rm -r {{ BUILDDIR }}
new-ver part="latest": builddir
#!/usr/bin/env bash
set -euxo pipefail
echo "{{ TAGS }}" > {{ ALL_VERSIONS }}
cat {{ ALL_VERSIONS }} | bumpver --last-version patch - > {{ CURRENT_VERSION }}
if [[ {{part}} == "latest" ]];
then
bumpver patch --prerelease --prerelease-fmt 'latest.$KeyArg commit.$BumpInt' -k commit={{COMMIT}} {{ CURRENT_VERSION }} > {{ NEW_VERSION }}
git tag $(cat {{ NEW_VERSION }})
else
bumpver {{part}} <(git tag -l) > {{ NEW_VERSION }}
fi
builddir:
mkdir -p {{ BUILDDIR }}/etc
mkdir -p {{ BUILDDIR }}/bin
cp policy.csv auth_model.ini gitserver.yaml {{ BUILDDIR }}/etc/
git-push tag:
git push origin master
git push origin {{ tag }}
git-prepare-release:
#!/usr/bin/env bash
set -euxo pipefail
new_ver=$(cat {{ NEW_VERSION }})
cd manifests/std/
sed -i "s@^ app.kubernetes.io/version: [0-9]\.[0-9]\.[0-9]@ app.kubernetes.io/version: $new_ver@g" kustomization.yaml
kustomize edit set image go-git-server=public.ecr.aws/s0f9o2k5/go-git-server:$new_ver
git commit kustomization.yaml -m "chore: bump deployment"
git-tag-release:
#!/usr/bin/env bash
set -euxo pipefail
new_ver=$(cat {{ NEW_VERSION }})
current_ver=$(cat {{ CURRENT_VERSION}})
# git commit manifests/std/kustomization.yaml -m "chore: bump deployment"
# temp light weight tag for building release notes
git tag $new_ver
echo "v${new_ver} release" > {{ TEMPDIR }}/chglog
git-chglog $current_ver..$new_ver >> {{ TEMPDIR }}/chglog
echo "## Coverage" >> {{ TEMPDIR }}/chglog
echo "" >> {{ TEMPDIR }}/chglog
go tool cover -func={{ TEMPDIR }}/testcover.out >> {{ TEMPDIR }}/chglog
# end temp tag
git tag -d $new_ver
git tag --annotate --sign --cleanup=whitespace --file {{ TEMPDIR }}/chglog ${new_ver}
release part: test builddir (new-ver part) git-prepare-release docker-build git-tag-release push
build version: test builddir
CGO_ENABLED=0 go build -a -ldflags "-s -X 'main.goGitServerVersion={{version}}'" -o {{ BUILDDIR }}//bin/go-git-server cmd/main.go
push:
new_ver=$(cat {{ NEW_VERSION }}); \
just docker-push; \
just git-push
@echo "pushed to all endpoints"
docker-push registry="public.ecr.aws/s0f9o2k5":
new_ver=$(cat {{ NEW_VERSION }}); \
docker tag go-git-server:$new_ver {{registry}}/go-git-server:$new_ver; \
docker push {{registry}}/go-git-server:$new_ver
run repo=(TEMPDIR):
go run cmd/main.go -a -r {{repo}}
test:
golangci-lint run
go test -v -coverprofile={{ TEMPDIR }}/testcover.out ./...
go tool cover -func={{ TEMPDIR }}/testcover.out
debug-test pkg func:
dlv test {{pkg}} -- -test.v -test.run {{func}}
debug-run:
dlv debug cmd/main.go -- -s {{justfile_directory()}}/gitserver.yaml -r {{ TEMPDIR }} -t tokens.csv -p policy.csv -m auth_model.ini -a
local-build: clean new-ver docker-build (docker-push "localhost:5000")
#!/usr/bin/env bash
set -euxo pipefail
new_ver=$(cat {{ NEW_VERSION }})
cd manifests/local
kustomize edit set image go-git-server=go-git-registry:5000/go-git-server:$new_ver
local-clean:
kustomize build manifests/local | kubectl --context k3d-go-git-cluster delete -f -
local-undeploy:
kustomize build manifests/base | kubectl --context k3d-go-git-cluster delete -f -
kustomize build manifests/cgit | kubectl --context k3d-go-git-cluster delete -f -
local-deploy: local-build
kustomize build manifests/local | kubectl --context k3d-go-git-cluster apply -f -
local-cluster:
k3d cluster create go-git-cluster --registry-create go-git-registry:5000
local-cluster-clean:
k3d cluster delete go-git-cluster
|