From 2b806e15ac4a6248cad6d47ec58beb9a63e1c52d Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy <1712947+adwk67@users.noreply.github.com> Date: Fri, 6 Dec 2024 12:24:44 +0100 Subject: [PATCH] ci: set PR-suffix on PRs against non-main/release branches (#471) * set PR suffix on PRs against release branches * added comment * Update template/.github/workflows/build.yml.j2 Co-authored-by: Nick <10092581+NickLarsenNZ@users.noreply.github.com> * Update template/.github/workflows/build.yml.j2 Co-authored-by: Nick <10092581+NickLarsenNZ@users.noreply.github.com> --------- Co-authored-by: Nick <10092581+NickLarsenNZ@users.noreply.github.com> --- template/.github/workflows/build.yml.j2 | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/template/.github/workflows/build.yml.j2 b/template/.github/workflows/build.yml.j2 index 5e4ba77d..926fbce2 100644 --- a/template/.github/workflows/build.yml.j2 +++ b/template/.github/workflows/build.yml.j2 @@ -344,10 +344,18 @@ jobs: with: crate: cargo-edit bin: cargo-set-version - - name: Update version if PR - # For PRs to be merged against a release branch, the version has already been set, in which case ignore this step. + - name: Update version if PR against main branch if: ${{ github.event_name == 'pull_request' && github.ref == 'refs/heads/main' }} run: cargo set-version --offline --workspace 0.0.0-pr${{ github.event.pull_request.number }} + - name: Update version if PR against non-main branch + # For PRs to be merged against a release branch, use the version that has already been set in the calling script. + if: ${{ github.event_name == 'pull_request' && github.ref != 'refs/heads/main' }} + env: + PR_NUMBER: ${{ github.event.pull_request.number }} + run: | + MANIFEST_VERSION=$(cargo metadata --format-version 1 --no-deps | jq -r '.packages[0].version') + PR_VERSION="${MANIFEST_VERSION}-pr${PR_NUMBER}" + cargo set-version --offline --workspace "$PR_VERSION" # Recreate charts and publish charts and docker image. The "-e" is needed as we want to override the # default value in the makefile if called from this action, but not otherwise (i.e. when called locally). @@ -411,10 +419,18 @@ jobs: with: crate: cargo-edit bin: cargo-set-version - - name: Update version if PR - # For PRs to be merged against a release branch, the version has already been set, in which case ignore this step. + - name: Update version if PR against main branch if: ${{ github.event_name == 'pull_request' && github.ref == 'refs/heads/main' }} run: cargo set-version --offline --workspace 0.0.0-pr${{ github.event.pull_request.number }} + - name: Update version if PR against non-main branch + # For PRs to be merged against a release branch, use the version that has already been set in the calling script. + if: ${{ github.event_name == 'pull_request' && github.ref != 'refs/heads/main' }} + env: + PR_NUMBER: ${{ github.event.pull_request.number }} + run: | + MANIFEST_VERSION=$(cargo metadata --format-version 1 --no-deps | jq -r '.packages[0].version') + PR_VERSION="${MANIFEST_VERSION}-pr${PR_NUMBER}" + cargo set-version --offline --workspace "$PR_VERSION" - name: Build manifest list run: | # Creating manifest list