TEMPDIR := `mktemp -d -p $(pwd)/testdata` BUILDDIR := "_build" ALL_VERSIONS := BUILDDIR / "ALL_VERSIONS" NEW_VERSION := BUILDDIR / "NEW_VERSION" CURRENT_VERSION := BUILDDIR / "CURRENT_VERSION" DEFAULT_REGISTRY := "public.ecr.aws/x2w2w0z4" 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 -rf {{ 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/overlays/prod 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={{ DEFAULT_REGISTRY }}/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=$PWD/testdata/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 echo "Completed release of {{ NEW_VERSION }}" cat {{ TEMPDIR }}/chglog 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 $new_ver @echo "pushed to all endpoints" docker-push registry=DEFAULT_REGISTRY: 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): git clone --bare mgmt {{repo}}/mgmt.git go run cmd/main.go -a -r {{repo}} test: golangci-lint run TMPDIR=$PWD/testdata go test -v -coverprofile=$PWD/testdata/testcover.out ./... go tool cover -func=$PWD/testdata/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