|
| 1 | +# Releasing |
| 2 | + |
| 3 | +Argo Image Updater is released in a 2 step automated fashion using GitHub actions. The release process takes about 20 minutes, sometimes a little less, depending on the performance of GitHub Actions runners. |
| 4 | + |
| 5 | +Releases can only be done by people that have write/commit access on the Argo Image Updater GitHub repository. |
| 6 | + |
| 7 | +## Introduction |
| 8 | + |
| 9 | +First install on your workstation the following: |
| 10 | + |
| 11 | +1. GoLang |
| 12 | +1. The `git` executable |
| 13 | +1. The [GitHub CLI](https://cli.github.com/) |
| 14 | +1. The `semver` cli with `go install github.com/davidrjonas/semver-cli@latest` |
| 15 | + |
| 16 | +Then create a release branch: |
| 17 | + |
| 18 | +``` |
| 19 | +git clone [email protected]:argoproj-labs/argocd-image-updater.git |
| 20 | +git branch -b release-0.13 |
| 21 | +git push origin release-0.13 |
| 22 | +``` |
| 23 | + |
| 24 | +The release name is just an example. You should use the next number from the [previous release](https://github.com/argoproj-labs/argocd-image-updater/releases). Make sure that the branch is named as `release-X.XX` though. |
| 25 | + |
| 26 | +Also note that `origin` is just an example. It should be the name of your remote that holds the upstream branch of Argo Image updater. |
| 27 | + |
| 28 | +Finally run |
| 29 | + |
| 30 | +``` |
| 31 | +./hack/create-release-pr.sh origin |
| 32 | +``` |
| 33 | + |
| 34 | +Again notice that the argument must match the upstream Git remote that you used before. This [command](https://github.com/argoproj-labs/argocd-image-updater/blob/master/hack/create-release-pr.sh) will automatically create a Pull Request in GitHub with the contents of the new release. |
| 35 | + |
| 36 | +## Review the pull request |
| 37 | + |
| 38 | +Visit the Pull Request that you just created in the GitHub UI. Validate the contents of the diff to see the suggested changes. |
| 39 | +Once you are happy with the result, approve/merge the Pull Request. |
| 40 | + |
| 41 | +Merging the Pull Request will start an [automated release process](https://github.com/argoproj-labs/argocd-image-updater/blob/master/.github/workflows/create-release-draft.yaml) that will build all the artifacts |
| 42 | +and create a draft release. |
| 43 | + |
| 44 | +## Publish the release |
| 45 | + |
| 46 | +You should now have a draft release or Argo Image Updater with all required artifacts attached as binaries. |
| 47 | + |
| 48 | +First, attach the release notes. [GitHub can do it automatically for you](https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes) by clicking the respective button |
| 49 | +and selecting from the drop-down menu the previous release. |
| 50 | + |
| 51 | +Finally publish the release by clicking the green button on the bottom left of the screen. |
| 52 | + |
| 53 | +You are finished! |
| 54 | + |
| 55 | + |
| 56 | + |
| 57 | + |
| 58 | + |
| 59 | + |
| 60 | + |
| 61 | + |
| 62 | + |
| 63 | + |
0 commit comments