Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
| image-reuse.yaml | Build, push, and Sign container images |
| image.yaml | Build container image for PR's & publish for push events |
| init-release.yaml | Build manifests and version then create a PR for release branch|
| tag-release.yaml | Run after PR for release branch is merged, create and push a release tag |
| pr-title-check.yaml| Lint PR for semantic information |
| release.yaml | Build images, cli-binaries, provenances, and post actions |
| scorecard.yaml | Generate scorecard for supply-chain security |
Expand Down
4 changes: 1 addition & 3 deletions .github/workflows/init-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,4 @@ jobs:
branch: update-version
branch-suffix: random
signoff: true
labels: release


labels: release
36 changes: 36 additions & 0 deletions .github/workflows/tag-release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Tag Release After PR Merge

on:
push:
branches:
- 'release-*'
paths:
- 'VERSION'

jobs:
trigger-release:
permissions:
contents: write
name: Automatically Tag Release ${{ github.ref_name }} Branch
runs-on: ubuntu-22.04
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
ref: ${{ github.ref }}

- name: Setup Git author information
run: |
git config --global user.email '[email protected]'
git config --global user.name 'CI'

- name: Determine Version
run: |
VERSION=$(cat VERSION)
echo "VERSION=${VERSION}" >> $GITHUB_ENV

- name: Trigger Release Script
run: |
bash hack/trigger-release.sh v${{ env.VERSION }} origin
23 changes: 5 additions & 18 deletions docs/developer-guide/releasing.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,31 +51,18 @@ and choose which branch you would like to work from.

When the action is completed a pull request will be generated that contains the updated manifest and `Version` file.

5. Merge the pull request and proceed to step 2.
5. Merge the pull request.

### Step 2 - Tag Release Branch

The steps below need to be executed by someone with write access in Argo CD upstream repo.

1. Checkout the release branch. Example: `git fetch upstream && git
checkout release-2.7`
2. Run the script found at `hack/trigger-release.sh` as follows:

```shell
./hack/trigger-release.sh <version> <remote name>
```

Example:
```shell
./hack/trigger-release.sh v2.7.2 upstream
```
After the pull request from Step 1 is merged, the `Tag Release After PR Merge` action will automatically run. This action checks out the release branch, creates a new release tag based on `VERSION` file, and pushes the tag to the repository.

!!! tip
The tag must be in one of the following formats to trigger the GH workflow:<br>
* GA: `v<MAJOR>.<MINOR>.<PATCH>`<br>
* Pre-release: `v<MAJOR>.<MINOR>.<PATCH>-rc<RC#>`

Once the script is executed successfully, a GitHub workflow will start
Once Step 2 is completed successfully, a GitHub workflow will start
execution. You can follow its progress under the [Actions](https://github.com/argoproj/argo-cd/actions/workflows/release.yaml) tab, the name of the action is `Publish ArgoCD Release`.

!!! warning
Expand Down Expand Up @@ -112,5 +99,5 @@ The release process does not allow a manual release process. Image signatures an
|goreleaser.yaml |Config to build CLI binaries, checksums, release-notes |
|.github/workflows/image-reuse.yaml |Reusable workflow used to generate container images |
|.github/workflows/init-release.yaml |Used to generate manifest and `VERSION` file |
|.github/workflows/release.yaml |Build image, CLI binaries, provenances, sbom, post jobs |
|./hack/trigger-release.sh |Ensures all pre-requistes are met and pushes the tag |
|.github/workflows/tag-release.yaml |Pushes the tag based on `VERSION` file |
|.github/workflows/release.yaml |Build image, CLI binaries, provenances, sbom, post jobs |