aboutsummaryrefslogtreecommitdiff
path: root/justfile
diff options
context:
space:
mode:
authorMax Resnick <max@ofmax.li>2024-08-17 22:50:50 -0700
committerMax Resnick <max@ofmax.li>2024-08-17 22:50:50 -0700
commit2bc289296e1917ab8a56ac4c3f931cc5675ee82c (patch)
treea7d45def376ba707dcdaa51189bc7c1b21631535 /justfile
parent32b5fe8548a0169f33ac3e5afb17e8c83f4d8cbe (diff)
downloadgo-git-server-2bc289296e1917ab8a56ac4c3f931cc5675ee82c.tar.gz
feat: release targets for building release
Diffstat (limited to 'justfile')
-rw-r--r--justfile50
1 files changed, 37 insertions, 13 deletions
diff --git a/justfile b/justfile
index da736c9..c673c6a 100644
--- a/justfile
+++ b/justfile
@@ -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: