From 09cc0b7cb04d08c605d07d36084b2c42f2f676a6 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Fri, 7 Nov 2025 22:27:52 +0100 Subject: [PATCH 1/5] refactor worfklow to use the new diff branches Signed-off-by: Vincenzo Scamporlino --- .github/workflows/release.yml | 57 ++++++++++++++++++++++------------- 1 file changed, 36 insertions(+), 21 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 13689122..c82bea01 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,19 +19,13 @@ jobs: RELEASE_VERSION: ${{ github.event.inputs.releaseVersion }} steps: - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event." - - # First check out master and run the script that figures out which version of create-app we should use - - name: Check out repository code + - name: Check out release base uses: actions/checkout@v5 with: - sparse-checkout: . + ref: "release-base" - uses: actions/setup-node@v2 with: node-version: 20 - - name: Check out release base - uses: actions/checkout@v5 - with: - ref: "release-base" - name: Setup global git bot user run: | git config --global user.name "github-actions[bot]" @@ -95,14 +89,45 @@ jobs: - name: Check out diffs branch uses: actions/checkout@v5 with: - ref: "master" - fetch-depth: 0 + ref: "release-diff-base" + - name: Checkout new branch for release ${NEW_VERSION} + run: git checkout -b release-diff/legacy/v${NEW_VERSION} + - name: Setup git bot user + run: | + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" - name: Create new diffs run: | - for version in $(jq -r 'to_entries |.[] | .value.createApp // .key' < releases.json); do + for version in $(curl -s https://raw.githubusercontent.com/backstage/upgrade-helper-diff/master/releases.json | jq -r 'to_entries | .[] | .value.createApp // .key'); do echo "Creating diffs between version $version and $NEW_VERSION" git diff -U1 origin/release/$version..origin/release/$NEW_VERSION > diffs/$version..$NEW_VERSION.diff done + - name: Create new branch with diff files for release ${NEW_VERSION} + run: | + git add . + git commit -m "Add release ${NEW_VERSION}" + git push origin release-diff/legacy/v${NEW_VERSION} + - name: Check out diffs branch again for yarn plugin + uses: actions/checkout@v5 + with: + ref: "release-diff-base" + - name: Checkout new branch for release ${RELEASE_VERSION} with yarn plugin + run: git checkout -b release-diff/v${RELEASE_VERSION} + - name: Create new diffs for yarn plugin + run: | + for version in $(curl -s https://raw.githubusercontent.com/backstage/upgrade-helper-diff/master/releases-yarn-plugin.json | jq -r 'to_entries | .[] | .value.createApp // .key'); do + echo "Creating yarn-plugin diffs between version $version and $RELEASE_VERSION" + git diff -U1 origin/release/yarn-plugin/$version..origin/release/yarn-plugin/$RELEASE_VERSION > diffs/$version..$RELEASE_VERSION.diff + done + - name: Push the changes + run: | + git add . + git commit -m "Add release ${NEW_VERSION}" + git push origin release-diff/v${RELEASE_VERSION} + - name: Check out default branch + uses: actions/checkout@v5 + with: + ref: "master" - name: Add new version to release.json run: | if [ -z "$RELEASE_VERSION" ]; then @@ -111,20 +136,10 @@ jobs: jq ".\"$RELEASE_VERSION\" = { createApp: \"$NEW_VERSION\" }" < releases.json > _releases.json fi mv _releases.json releases.json - - name: Create new diffs for yarn plugin - run: | - for version in $(jq -r 'to_entries |.[] | .key' < releases-yarn-plugin.json); do - echo "Creating yarn-plugin diffs between version $version and $RELEASE_VERSION" - git diff -U1 origin/release/yarn-plugin/$version..origin/release/yarn-plugin/$RELEASE_VERSION > diffs-yarn-plugin/$version..$RELEASE_VERSION.diff - done - name: Add new version to releases-yarn-plugin.json run: | jq ".\"$RELEASE_VERSION\" = { createApp: \"$NEW_VERSION\" }" < releases-yarn-plugin.json > _releases-yarn-plugin.json mv _releases-yarn-plugin.json releases-yarn-plugin.json - - name: Setup git bot user - run: | - git config user.name "github-actions[bot]" - git config user.email "41898282+github-actions[bot]@users.noreply.github.com" - name: Push the changes run: | git add . From d145a45a939800285e0d7d9816497ea31153ea09 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Fri, 7 Nov 2025 22:44:23 +0100 Subject: [PATCH 2/5] bump setup-node action Signed-off-by: Vincenzo Scamporlino --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c82bea01..318e1b4b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,7 +23,7 @@ jobs: uses: actions/checkout@v5 with: ref: "release-base" - - uses: actions/setup-node@v2 + - uses: actions/setup-node@v6 with: node-version: 20 - name: Setup global git bot user From d4223e559734f9cb3034c406c53e176e72deb476 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Fri, 7 Nov 2025 23:17:15 +0100 Subject: [PATCH 3/5] adjust yarn plugin filter Signed-off-by: Vincenzo Scamporlino --- .github/workflows/release.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 318e1b4b..a4592dc1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -98,6 +98,7 @@ jobs: git config user.email "41898282+github-actions[bot]@users.noreply.github.com" - name: Create new diffs run: | + mkdir diffs for version in $(curl -s https://raw.githubusercontent.com/backstage/upgrade-helper-diff/master/releases.json | jq -r 'to_entries | .[] | .value.createApp // .key'); do echo "Creating diffs between version $version and $NEW_VERSION" git diff -U1 origin/release/$version..origin/release/$NEW_VERSION > diffs/$version..$NEW_VERSION.diff @@ -115,7 +116,7 @@ jobs: run: git checkout -b release-diff/v${RELEASE_VERSION} - name: Create new diffs for yarn plugin run: | - for version in $(curl -s https://raw.githubusercontent.com/backstage/upgrade-helper-diff/master/releases-yarn-plugin.json | jq -r 'to_entries | .[] | .value.createApp // .key'); do + for version in $(curl -s https://raw.githubusercontent.com/backstage/upgrade-helper-diff/master/releases-yarn-plugin.json | jq -r 'to_entries |.[] | .key'); do echo "Creating yarn-plugin diffs between version $version and $RELEASE_VERSION" git diff -U1 origin/release/yarn-plugin/$version..origin/release/yarn-plugin/$RELEASE_VERSION > diffs/$version..$RELEASE_VERSION.diff done From 00a3295059176e672007dd06a7b374c0376efe2b Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Fri, 7 Nov 2025 23:27:58 +0100 Subject: [PATCH 4/5] fetch required branches Signed-off-by: Vincenzo Scamporlino --- .github/workflows/release.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a4592dc1..f4dea4a7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -101,6 +101,8 @@ jobs: mkdir diffs for version in $(curl -s https://raw.githubusercontent.com/backstage/upgrade-helper-diff/master/releases.json | jq -r 'to_entries | .[] | .value.createApp // .key'); do echo "Creating diffs between version $version and $NEW_VERSION" + git fetch origin release/$version + git fetch origin release/$NEW_VERSION git diff -U1 origin/release/$version..origin/release/$NEW_VERSION > diffs/$version..$NEW_VERSION.diff done - name: Create new branch with diff files for release ${NEW_VERSION} @@ -118,6 +120,8 @@ jobs: run: | for version in $(curl -s https://raw.githubusercontent.com/backstage/upgrade-helper-diff/master/releases-yarn-plugin.json | jq -r 'to_entries |.[] | .key'); do echo "Creating yarn-plugin diffs between version $version and $RELEASE_VERSION" + git fetch origin release/yarn-plugin/$version + git fetch origin release/yarn-plugin/$RELEASE_VERSION git diff -U1 origin/release/yarn-plugin/$version..origin/release/yarn-plugin/$RELEASE_VERSION > diffs/$version..$RELEASE_VERSION.diff done - name: Push the changes From 5f119af9953145e99d162abffc6def4bc689f147 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Fri, 7 Nov 2025 23:34:33 +0100 Subject: [PATCH 5/5] creating missing diffs dir and optimize branch fetch Signed-off-by: Vincenzo Scamporlino --- .github/workflows/release.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f4dea4a7..d98b5826 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -99,10 +99,10 @@ jobs: - name: Create new diffs run: | mkdir diffs + git fetch origin release/$NEW_VERSION for version in $(curl -s https://raw.githubusercontent.com/backstage/upgrade-helper-diff/master/releases.json | jq -r 'to_entries | .[] | .value.createApp // .key'); do echo "Creating diffs between version $version and $NEW_VERSION" git fetch origin release/$version - git fetch origin release/$NEW_VERSION git diff -U1 origin/release/$version..origin/release/$NEW_VERSION > diffs/$version..$NEW_VERSION.diff done - name: Create new branch with diff files for release ${NEW_VERSION} @@ -118,10 +118,11 @@ jobs: run: git checkout -b release-diff/v${RELEASE_VERSION} - name: Create new diffs for yarn plugin run: | + mkdir diffs + git fetch origin release/yarn-plugin/$RELEASE_VERSION for version in $(curl -s https://raw.githubusercontent.com/backstage/upgrade-helper-diff/master/releases-yarn-plugin.json | jq -r 'to_entries |.[] | .key'); do echo "Creating yarn-plugin diffs between version $version and $RELEASE_VERSION" git fetch origin release/yarn-plugin/$version - git fetch origin release/yarn-plugin/$RELEASE_VERSION git diff -U1 origin/release/yarn-plugin/$version..origin/release/yarn-plugin/$RELEASE_VERSION > diffs/$version..$RELEASE_VERSION.diff done - name: Push the changes