arlon
arlon copied to clipboard
document and implement an official release process that uses GitHub releases
Today we tag, version, publish binaries, and publish images in a manual way. We need to document and automate as much as possible a release process. Use existing OSS projects (e.g. argocd, CAPI) as a reference that we could potentially model after.
Aha! Link: https://pf9.aha.io/features/ARLON-127
We now publish the CLI on GitHub using GoReleaser To create a release,
- Identify a commit to create a tag from by running
git rev-parse --short HEAD
- Run
git tag -a <tag> <commit> -m "commit message"
e.g.git tag -a v0.3.5 0f3ce97 -m "v0.3.5 : Support for nodelet-provider, AWS regions in clusterspec, Upgrade ArgoCD lib to 2.2.12 and k8s to 1.22.12"
- The GitHub action (workflow) for GoReleaser will create a release when a tag is pushed (other than a 0.3.* tag on the 0.3 branch) that will contain a changelog of latest commits, and CLI downloadables as compressed tarballs.
- Collaborators on GitHub can create a new controller image by running
make docker-build; make docker-push
- To push a docker image, you will need contributor permissions
- A contributor will have to be logged in to GitHub using personal authentication token as
-
echo $GH_PAT | docker login [ghcr.io](http://ghcr.io/) -u GITHUB_USERNAME --password-stdin
- The controller image has same version as the content of the
version
file in the base folder of this repository.
This looks interesting https://github.com/argoproj/argo-cd/blob/master/.github/workflows/release.yaml Can we do something similar? This PR https://github.com/arlonproj/arlon/pull/174 partially fixes this issue. We can proceed to add controller image release automation