diff --git a/.github/workflows/update-main-version.yml b/.github/workflows/update-main-version.yml new file mode 100644 index 0000000..f93e9a7 --- /dev/null +++ b/.github/workflows/update-main-version.yml @@ -0,0 +1,36 @@ +name: Update main release version +run-name: Move ${{ github.event.inputs.main_version }} to ${{ github.event.inputs.target }} + +on: + workflow_dispatch: + inputs: + target: + description: The tag of the target version which should be used as the new main version + required: true + main_version: + type: choice + description: The main version to update + options: + - v1 + +jobs: + move-version: + permissions: + id-token: write + contents: write + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 # Required since we need to ensure all tags are contained within the checkout. + + - name: Setup GitSign + uses: chainguard-dev/actions/setup-gitsign@main + + - name: Move main version tag + run: | + git config --global user.email "roxbot@stackrox.com" + git config --global user.name "Robot Rox" + # Move the main version tag to the target tag. + git tag -s -f ${{ github.event.inputs.main_version }} ${{ github.event.inputs.target }} + git push origin ${{ github.event.inputs.main_version }} --force --tags diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 0000000..5326820 --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,23 @@ +# Releasing a new version + +This documents all steps requires to release a new version of the central-login GitHub Action. + +## Create a new GitHub release incl. tag + +Once you're ready to release, create a GitHub release including a new release. +Currently, no special GitHub action is used to draft the release, we use the default GitHub template for the release +notes. + +We strive to version according to [semantic versioning](https://semver.org/). + +## Move the main version tag to the new version + +Once the new release is created including the new tag, we move the main version tag (i.e `v1`) to point to the newly +released version. + +This is done by manually triggering the workflow `update-main-version`. + +As input, you have to choose the main version for which you want to move the referenced Git commit (i.e. `v1`) as well +as the newly created release tag. + +Once the action run has been successful, the release of the new version is complete.