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 > _build/ALL_VERSIONS` alias dr := debug-run alias dt := debug-test docker part: (new_ver part) 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": #!/usr/bin/env bash set -euxo pipefail CURRENT_VER=$(bumpver --last-version patch {{ ALL_VERSIONS }}) if [[ {{part}} == "latest" ]]; then echo $CURRENT_VER | bumpver patch --prerelease --prerelease-fmt 'latest.$KeyArg commit' -k commit={{COMMIT}} - > {{ 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/ release part: #!/usr/bin/env bash set -euxo pipefail new_ver=$(cat {{ NEW_VERSION }}) current_ver=$(cat {{ CURRENT_VERSION }}) # temp light weight tag for building release notes git tag $new_var echo "v${new_ver} release" > {{ TEMPDIR }}/chglog git-chglog $curent_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} git push origin ${new_ver} 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 tag="latest" registry="public.ecr.aws/s0f9o2k5": (docker tag) docker tag go-git-server:latest {{registry}}/go-git-server:{{tag}} docker push {{registry}}/go-git-server:{{tag}} 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-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-push: (push "localhost:5000") @echo "build and push to local dir" 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: 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 debug-test pkg func: dlv test {{pkg}} -- -test.v -test.run {{func}}