diff options
| author | Max Resnick <max@ofmax.li> | 2024-08-17 22:50:50 -0700 |
|---|---|---|
| committer | Max Resnick <max@ofmax.li> | 2024-08-17 22:50:50 -0700 |
| commit | 2bc289296e1917ab8a56ac4c3f931cc5675ee82c (patch) | |
| tree | a7d45def376ba707dcdaa51189bc7c1b21631535 | |
| parent | 32b5fe8548a0169f33ac3e5afb17e8c83f4d8cbe (diff) | |
| download | go-git-server-2bc289296e1917ab8a56ac4c3f931cc5675ee82c.tar.gz | |
feat: release targets for building release
| -rw-r--r-- | justfile | 50 |
1 files changed, 37 insertions, 13 deletions
@@ -3,13 +3,14 @@ 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` +TAGS := `git tag -l` alias dr := debug-run alias dt := debug-test -docker part: (new_ver part) +docker-build tag="latest": new_ver=$(cat {{ NEW_VERSION }}); \ docker build --build-arg="version=$new_ver" -t go-git-server:$new_ver . @@ -19,13 +20,14 @@ docker-run: clean: rm -r {{ BUILDDIR }} -new_ver part="latest": +new-ver part="latest": builddir #!/usr/bin/env bash set -euxo pipefail - CURRENT_VER=$(bumpver --last-version patch {{ ALL_VERSIONS }}) + echo "{{ TAGS }}" > {{ ALL_VERSIONS }} + cat {{ ALL_VERSIONS }} | bumpver --last-version patch - > {{ CURRENT_VERSION }} if [[ {{part}} == "latest" ]]; then - echo $CURRENT_VER | bumpver patch --prerelease --prerelease-fmt 'latest.$KeyArg commit' -k commit={{COMMIT}} - > {{ NEW_VERSION }} + bumpver patch --prerelease --prerelease-fmt 'latest.$KeyArg commit' -k commit={{COMMIT}} {{ CURRENT_VERSION }} - > {{ NEW_VERSION }} else bumpver {{part}} <(git tag -l) > {{ NEW_VERSION }} fi @@ -35,28 +37,50 @@ builddir: mkdir -p {{ BUILDDIR }}/bin cp policy.csv auth_model.ini gitserver.yaml {{ BUILDDIR }}/etc/ -release part: +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 }}) + 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_var + git tag $new_ver echo "v${new_ver} release" > {{ TEMPDIR }}/chglog - git-chglog $curent_ver..$new_ver >> {{ 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} - git push origin ${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 tag="latest" registry="public.ecr.aws/s0f9o2k5": (docker tag) - docker tag go-git-server:latest {{registry}}/go-git-server:{{tag}} +push: + new_ver=$(cat {{ NEW_VERSION }}); \ + just docker-push git-push $new_ver + @echo "pushed to all endpoints" + +docker-push tag="latest" registry="public.ecr.aws/s0f9o2k5": + docker tag go-git-server:{{tag}} {{registry}}/go-git-server:{{tag}} docker push {{registry}}/go-git-server:{{tag}} run repo=(TEMPDIR): @@ -70,7 +94,7 @@ test: 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") +local-push: (docker-push "latest" "localhost:5000") @echo "build and push to local dir" local-clean: |