From 9593a5d5786d92e63945f26c327e6663afe5908e Mon Sep 17 00:00:00 2001 From: Christopher Bartz Date: Tue, 13 Oct 2026 10:26:17 +0000 Subject: [PATCH 1/2] fix(ci): recreate missing ci-failure label before opening failure issue --- .github/workflows/create-issue-on-failure.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/create-issue-on-failure.yaml b/.github/workflows/create-issue-on-failure.yaml index 18c1636edd1..a29dbe0e51a 100644 --- a/.github/workflows/create-issue-on-failure.yaml +++ b/.github/workflows/create-issue-on-failure.yaml @@ -42,6 +42,12 @@ jobs: if [ -n "$EXISTING_ISSUE" ]; then echo "An issue for this workflow run already exists (#${EXISTING_ISSUE}). Skipping creation." else + # gh issue create fails outright if a label is missing, so (re)create it first + gh label create "ci-failure" \ + --repo "${REPOSITORY}" \ + --description "Automated CI/CD pipeline failure" \ + --color "B60205" \ + --force gh issue create \ --repo "${REPOSITORY}" \ --title "${ISSUE_TITLE}" \ From e7c814b2716850b272bc2a76c668e535825e530c Mon Sep 17 00:00:00 2001 From: Christopher Bartz Date: Tue, 13 Oct 2026 10:26:17 +0000 Subject: [PATCH 2/2] fix(release): regenerate runner patches for v2.338.0 Upstream bumped the .NET 8 SDK pin in src/dev.sh and src/global.json, which conflicts with the arm patch's .NET 9 pin. Keep the .NET 9 pin and let the release workflow accept patches already regenerated for the latest tag, so merging them creates the release branch. --- .github/workflows/patch_update_release.yml | 18 +- patches/runner-sdk8-arm.patch | 206 ++++++++++----------- patches/runner-sdk8-ppc64le.patch | 12 +- patches/runner-sdk8-s390x.patch | 12 +- 4 files changed, 132 insertions(+), 116 deletions(-) diff --git a/.github/workflows/patch_update_release.yml b/.github/workflows/patch_update_release.yml index 3fea0ba47c1..4afb159405d 100644 --- a/.github/workflows/patch_update_release.yml +++ b/.github/workflows/patch_update_release.yml @@ -77,7 +77,23 @@ jobs: # Reset to clean state git reset --hard git clean -fd - + + # A patch that conflicted on a previous run may have been regenerated + # manually for the latest release; use it as-is instead of rebasing it. + if [ -f "../patches/runner-sdk8-$arch.patch" ] && \ + [ "$(tail -n 1 "../patches/runner-sdk8-$arch.patch")" = "# From upstream release: ${{ steps.get-tags.outputs.LATEST_TAG }}" ]; then + git checkout ${{ steps.get-tags.outputs.LATEST_TAG }} + if ! git apply --check --whitespace=nowarn "../patches/runner-sdk8-$arch.patch"; then + echo "::error::Patch for $arch is marked as regenerated for ${{ steps.get-tags.outputs.LATEST_TAG }} but does not apply cleanly to it" + cd .. + exit 1 + fi + echo "Patch for $arch already regenerated for ${{ steps.get-tags.outputs.LATEST_TAG }} - skipping rebase" + cd .. + echo "$arch" >> successful_arches.txt + continue + fi + # Check if previous patch exists if [ ! -f "../patches/runner-sdk8-$arch.patch" ] || \ ! grep -q "${{ steps.get-tags.outputs.PREVIOUS_TAG }}" "../patches/runner-sdk8-$arch.patch"; then diff --git a/patches/runner-sdk8-arm.patch b/patches/runner-sdk8-arm.patch index 51a36d4f7b4..d86bfd899f3 100644 --- a/patches/runner-sdk8-arm.patch +++ b/patches/runner-sdk8-arm.patch @@ -1,5 +1,5 @@ diff --git a/src/Misc/externals.sh b/src/Misc/externals.sh -index c3eff13c..156dd449 100755 +index 90978b6d..ee3fd607 100755 --- a/src/Misc/externals.sh +++ b/src/Misc/externals.sh @@ -4,6 +4,9 @@ PRECACHE=$2 @@ -19,7 +19,7 @@ index c3eff13c..156dd449 100755 + acquireExternalTool "$NODE_URL/v${NODE22_VERSION}/node-v${NODE22_VERSION}-linux-armv7l.tar.gz" node22 fix_nested_dir fi diff --git a/src/Runner.Common/Constants.cs b/src/Runner.Common/Constants.cs -index 4e851cf..d6c4a2d 100644 +index 4acf4943..97d3dd87 100644 --- a/src/Runner.Common/Constants.cs +++ b/src/Runner.Common/Constants.cs @@ -197,6 +197,7 @@ namespace GitHub.Runner.Common @@ -43,8 +43,21 @@ index 4e851cf..d6c4a2d 100644 // Blog post URL for Node 20 deprecation public static readonly string Node20DeprecationUrl = "https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/"; +diff --git a/src/Runner.Common/Runner.Common.csproj b/src/Runner.Common/Runner.Common.csproj +index 4ed18b2b..e0c88fbc 100644 +--- a/src/Runner.Common/Runner.Common.csproj ++++ b/src/Runner.Common/Runner.Common.csproj +@@ -1,7 +1,7 @@ + + + +- net8.0 ++ net9.0 + Library + win-x64;win-x86;linux-x64;linux-arm64;linux-arm;osx-x64;osx-arm64;win-arm64 + true diff --git a/src/Runner.Common/Util/NodeUtil.cs b/src/Runner.Common/Util/NodeUtil.cs -index 7b8055b..a40f970 100644 +index 7b8055b9..a40f970d 100644 --- a/src/Runner.Common/Util/NodeUtil.cs +++ b/src/Runner.Common/Util/NodeUtil.cs @@ -128,6 +128,19 @@ namespace GitHub.Runner.Common.Util @@ -110,8 +123,60 @@ index 7b8055b..a40f970 100644 + } } } +diff --git a/src/Runner.Listener/Runner.Listener.csproj b/src/Runner.Listener/Runner.Listener.csproj +index d2b1060d..d7119171 100644 +--- a/src/Runner.Listener/Runner.Listener.csproj ++++ b/src/Runner.Listener/Runner.Listener.csproj +@@ -1,7 +1,7 @@ + + + +- net8.0 ++ net9.0 + Exe + win-x64;win-x86;linux-x64;linux-arm64;linux-arm;osx-x64;osx-arm64;win-arm64 + true +diff --git a/src/Runner.PluginHost/Runner.PluginHost.csproj b/src/Runner.PluginHost/Runner.PluginHost.csproj +index 81a8d2e4..49272a23 100644 +--- a/src/Runner.PluginHost/Runner.PluginHost.csproj ++++ b/src/Runner.PluginHost/Runner.PluginHost.csproj +@@ -1,7 +1,7 @@ +  + + +- net8.0 ++ net9.0 + Exe + win-x64;win-x86;linux-x64;linux-arm64;linux-arm;osx-x64;osx-arm64;win-arm64 + true +diff --git a/src/Runner.Plugins/Runner.Plugins.csproj b/src/Runner.Plugins/Runner.Plugins.csproj +index a786cf1c..60d7662b 100644 +--- a/src/Runner.Plugins/Runner.Plugins.csproj ++++ b/src/Runner.Plugins/Runner.Plugins.csproj +@@ -1,7 +1,7 @@ +  + + +- net8.0 ++ net9.0 + Library + win-x64;win-x86;linux-x64;linux-arm64;linux-arm;osx-x64;osx-arm64;win-arm64 + true +diff --git a/src/Runner.Sdk/Runner.Sdk.csproj b/src/Runner.Sdk/Runner.Sdk.csproj +index 3f58d586..63a30a3f 100644 +--- a/src/Runner.Sdk/Runner.Sdk.csproj ++++ b/src/Runner.Sdk/Runner.Sdk.csproj +@@ -1,7 +1,7 @@ +  + + +- net8.0 ++ net9.0 + Library + win-x64;win-x86;linux-x64;linux-arm64;linux-arm;osx-x64;osx-arm64;win-arm64 + true diff --git a/src/Runner.Worker/Handlers/HandlerFactory.cs b/src/Runner.Worker/Handlers/HandlerFactory.cs -index 8044f09..d1f341e 100644 +index 8044f091..d1f341ed 100644 --- a/src/Runner.Worker/Handlers/HandlerFactory.cs +++ b/src/Runner.Worker/Handlers/HandlerFactory.cs @@ -33,6 +33,12 @@ namespace GitHub.Runner.Worker.Handlers @@ -157,8 +222,34 @@ index 8044f09..d1f341e 100644 { // Action is still running on node20 (general case) executionContext.Global.DeprecatedNode20Actions?.Add(actionName); +diff --git a/src/Runner.Worker/Runner.Worker.csproj b/src/Runner.Worker/Runner.Worker.csproj +index 03290778..efd2b8cd 100644 +--- a/src/Runner.Worker/Runner.Worker.csproj ++++ b/src/Runner.Worker/Runner.Worker.csproj +@@ -1,7 +1,7 @@ + + + +- net8.0 ++ net9.0 + Exe + win-x64;win-x86;linux-x64;linux-arm64;linux-arm;osx-x64;osx-arm64;win-arm64 + true +diff --git a/src/Sdk/Sdk.csproj b/src/Sdk/Sdk.csproj +index e6ba57af..0b5b1d62 100644 +--- a/src/Sdk/Sdk.csproj ++++ b/src/Sdk/Sdk.csproj +@@ -1,7 +1,7 @@ + + + +- net8.0 ++ net9.0 + Library + win-x64;win-x86;linux-x64;linux-arm64;linux-arm;osx-x64;osx-arm64;win-arm64 + diff --git a/src/Test/L0/Worker/HandlerFactoryL0.cs b/src/Test/L0/Worker/HandlerFactoryL0.cs -index e8ecdef..e7e3704 100644 +index e8ecdef3..e7e37048 100644 --- a/src/Test/L0/Worker/HandlerFactoryL0.cs +++ b/src/Test/L0/Worker/HandlerFactoryL0.cs @@ -625,6 +625,88 @@ namespace GitHub.Runner.Common.Tests.Worker @@ -279,7 +370,7 @@ index e8ecdef..e7e3704 100644 } } diff --git a/src/Test/L0/Worker/StepHostNodeVersionL0.cs b/src/Test/L0/Worker/StepHostNodeVersionL0.cs -index 1c626c5..0e62333 100644 +index 1c626c5d..0e623335 100644 --- a/src/Test/L0/Worker/StepHostNodeVersionL0.cs +++ b/src/Test/L0/Worker/StepHostNodeVersionL0.cs @@ -7,15 +7,28 @@ using Xunit; @@ -449,99 +540,8 @@ index 1c626c5..0e62333 100644 + } } } -diff --git a/src/Runner.Common/Runner.Common.csproj b/src/Runner.Common/Runner.Common.csproj -index 7f7e410..e240f07 100644 ---- a/src/Runner.Common/Runner.Common.csproj -+++ b/src/Runner.Common/Runner.Common.csproj -@@ -1,7 +1,7 @@ - - - -- net8.0 -+ net9.0 - Library - win-x64;win-x86;linux-x64;linux-arm64;linux-arm;osx-x64;osx-arm64;win-arm64 - true -diff --git a/src/Runner.Listener/Runner.Listener.csproj b/src/Runner.Listener/Runner.Listener.csproj -index d2b1060..d711917 100644 ---- a/src/Runner.Listener/Runner.Listener.csproj -+++ b/src/Runner.Listener/Runner.Listener.csproj -@@ -1,7 +1,7 @@ - - - -- net8.0 -+ net9.0 - Exe - win-x64;win-x86;linux-x64;linux-arm64;linux-arm;osx-x64;osx-arm64;win-arm64 - true -diff --git a/src/Runner.PluginHost/Runner.PluginHost.csproj b/src/Runner.PluginHost/Runner.PluginHost.csproj -index 81a8d2e..49272a2 100644 ---- a/src/Runner.PluginHost/Runner.PluginHost.csproj -+++ b/src/Runner.PluginHost/Runner.PluginHost.csproj -@@ -1,7 +1,7 @@ -  - - -- net8.0 -+ net9.0 - Exe - win-x64;win-x86;linux-x64;linux-arm64;linux-arm;osx-x64;osx-arm64;win-arm64 - true -diff --git a/src/Runner.Plugins/Runner.Plugins.csproj b/src/Runner.Plugins/Runner.Plugins.csproj -index a786cf1..60d7662 100644 ---- a/src/Runner.Plugins/Runner.Plugins.csproj -+++ b/src/Runner.Plugins/Runner.Plugins.csproj -@@ -1,7 +1,7 @@ -  - - -- net8.0 -+ net9.0 - Library - win-x64;win-x86;linux-x64;linux-arm64;linux-arm;osx-x64;osx-arm64;win-arm64 - true -diff --git a/src/Runner.Sdk/Runner.Sdk.csproj b/src/Runner.Sdk/Runner.Sdk.csproj -index 906b78f..0ec87c3 100644 ---- a/src/Runner.Sdk/Runner.Sdk.csproj -+++ b/src/Runner.Sdk/Runner.Sdk.csproj -@@ -1,7 +1,7 @@ -  - - -- net8.0 -+ net9.0 - Library - win-x64;win-x86;linux-x64;linux-arm64;linux-arm;osx-x64;osx-arm64;win-arm64 - true -diff --git a/src/Runner.Worker/Runner.Worker.csproj b/src/Runner.Worker/Runner.Worker.csproj -index 2da02b6..7ccb3d1 100644 ---- a/src/Runner.Worker/Runner.Worker.csproj -+++ b/src/Runner.Worker/Runner.Worker.csproj -@@ -1,7 +1,7 @@ - - - -- net8.0 -+ net9.0 - Exe - win-x64;win-x86;linux-x64;linux-arm64;linux-arm;osx-x64;osx-arm64;win-arm64 - true -diff --git a/src/Sdk/Sdk.csproj b/src/Sdk/Sdk.csproj -index af53dbe..05a612f 100644 ---- a/src/Sdk/Sdk.csproj -+++ b/src/Sdk/Sdk.csproj -@@ -1,7 +1,7 @@ - - - -- net8.0 -+ net9.0 - Library - win-x64;win-x86;linux-x64;linux-arm64;linux-arm;osx-x64;osx-arm64;win-arm64 - diff --git a/src/Test/Test.csproj b/src/Test/Test.csproj -index 37ffb5b..d2a96ca 100644 +index 843071c8..1cd9aa28 100644 --- a/src/Test/Test.csproj +++ b/src/Test/Test.csproj @@ -1,6 +1,6 @@ @@ -553,27 +553,27 @@ index 37ffb5b..d2a96ca 100644 true NU1701;NU1603;NU1603;xUnit2013;SYSLIB0050;SYSLIB0051 diff --git a/src/dev.sh b/src/dev.sh -index 88a6428..e12b1f2 100755 +index 5fd2b549..e12b1f2c 100755 --- a/src/dev.sh +++ b/src/dev.sh @@ -17,7 +17,7 @@ LAYOUT_DIR="$SCRIPT_DIR/../_layout" DOWNLOAD_DIR="$SCRIPT_DIR/../_downloads/netcore2x" PACKAGE_DIR="$SCRIPT_DIR/../_package" DOTNETSDK_ROOT="$SCRIPT_DIR/../_dotnetsdk" --DOTNETSDK_VERSION="8.0.424" +-DOTNETSDK_VERSION="8.0.425" +DOTNETSDK_VERSION="9.0.318" DOTNETSDK_INSTALLDIR="$DOTNETSDK_ROOT/$DOTNETSDK_VERSION" RUNNER_VERSION=$(cat runnerversion) diff --git a/src/global.json b/src/global.json -index 9af44fb..70cfe5c 100644 +index 5821cb36..70cfe5c2 100644 --- a/src/global.json +++ b/src/global.json @@ -1,5 +1,5 @@ { "sdk": { -- "version": "8.0.424" +- "version": "8.0.425" + "version": "9.0.318" } } -# From upstream release: v2.337.0 +# From upstream release: v2.338.0 diff --git a/patches/runner-sdk8-ppc64le.patch b/patches/runner-sdk8-ppc64le.patch index c9f55acd789..511860e02c1 100644 --- a/patches/runner-sdk8-ppc64le.patch +++ b/patches/runner-sdk8-ppc64le.patch @@ -16,7 +16,7 @@ index 9c069b12..d26b0dc2 100644 diff --git a/src/Misc/externals.sh b/src/Misc/externals.sh -index c3eff13c..c812f002 100755 +index 90978b6d..05ed87f3 100755 --- a/src/Misc/externals.sh +++ b/src/Misc/externals.sh @@ -187,3 +187,13 @@ fi @@ -86,7 +86,7 @@ index 14cc6bab..9b5b8e6f 100755 if ! [ -x "$(command -v ldconfig)" ]; then diff --git a/src/Runner.Common/Constants.cs b/src/Runner.Common/Constants.cs -index 4e851cfd..7fcd2799 100644 +index 4acf4943..5a0d934e 100644 --- a/src/Runner.Common/Constants.cs +++ b/src/Runner.Common/Constants.cs @@ -59,7 +59,9 @@ namespace GitHub.Runner.Common @@ -127,7 +127,7 @@ index 97273a1a..78f78701 100644 throw new NotSupportedException(); // Should never reach here. } diff --git a/src/Sdk/Sdk.csproj b/src/Sdk/Sdk.csproj -index af53dbe2..8cfaf34d 100644 +index e6ba57af..fc8b3d34 100644 --- a/src/Sdk/Sdk.csproj +++ b/src/Sdk/Sdk.csproj @@ -4,7 +4,7 @@ @@ -201,7 +201,7 @@ index bac7d41d..b83793e4 100644 [Trait("Level", "L0")] [Trait("Category", "Worker")] diff --git a/src/Test/Test.csproj b/src/Test/Test.csproj -index 37ffb5b2..07f5c3bb 100644 +index 843071c8..40407c7f 100644 --- a/src/Test/Test.csproj +++ b/src/Test/Test.csproj @@ -2,6 +2,10 @@ @@ -216,7 +216,7 @@ index 37ffb5b2..07f5c3bb 100644 NU1701;NU1603;NU1603;xUnit2013;SYSLIB0050;SYSLIB0051 diff --git a/src/dev.sh b/src/dev.sh -index 88a64285..24258499 100755 +index 5fd2b549..5f751981 100755 --- a/src/dev.sh +++ b/src/dev.sh @@ -54,6 +54,8 @@ elif [[ "$CURRENT_PLATFORM" == 'linux' ]]; then @@ -284,4 +284,4 @@ index 056a312e..3f9a3679 100644 -# From upstream release: v2.337.0 +# From upstream release: v2.338.0 diff --git a/patches/runner-sdk8-s390x.patch b/patches/runner-sdk8-s390x.patch index 66e65849694..7bdf87c8bd6 100644 --- a/patches/runner-sdk8-s390x.patch +++ b/patches/runner-sdk8-s390x.patch @@ -16,7 +16,7 @@ index 9c069b12..d26b0dc2 100644 diff --git a/src/Misc/externals.sh b/src/Misc/externals.sh -index c3eff13c..c812f002 100755 +index 90978b6d..05ed87f3 100755 --- a/src/Misc/externals.sh +++ b/src/Misc/externals.sh @@ -187,3 +187,13 @@ fi @@ -86,7 +86,7 @@ index 14cc6bab..c8ed8b92 100755 if ! [ -x "$(command -v ldconfig)" ]; then diff --git a/src/Runner.Common/Constants.cs b/src/Runner.Common/Constants.cs -index 4e851cfd..7fcd2799 100644 +index 4acf4943..5a0d934e 100644 --- a/src/Runner.Common/Constants.cs +++ b/src/Runner.Common/Constants.cs @@ -59,7 +59,9 @@ namespace GitHub.Runner.Common @@ -127,7 +127,7 @@ index 97273a1a..78f78701 100644 throw new NotSupportedException(); // Should never reach here. } diff --git a/src/Sdk/Sdk.csproj b/src/Sdk/Sdk.csproj -index af53dbe2..8cfaf34d 100644 +index e6ba57af..fc8b3d34 100644 --- a/src/Sdk/Sdk.csproj +++ b/src/Sdk/Sdk.csproj @@ -4,7 +4,7 @@ @@ -201,7 +201,7 @@ index bac7d41d..b83793e4 100644 [Trait("Level", "L0")] [Trait("Category", "Worker")] diff --git a/src/Test/Test.csproj b/src/Test/Test.csproj -index 37ffb5b2..07f5c3bb 100644 +index 843071c8..40407c7f 100644 --- a/src/Test/Test.csproj +++ b/src/Test/Test.csproj @@ -2,6 +2,10 @@ @@ -216,7 +216,7 @@ index 37ffb5b2..07f5c3bb 100644 NU1701;NU1603;NU1603;xUnit2013;SYSLIB0050;SYSLIB0051 diff --git a/src/dev.sh b/src/dev.sh -index 88a64285..24258499 100755 +index 5fd2b549..5f751981 100755 --- a/src/dev.sh +++ b/src/dev.sh @@ -54,6 +54,8 @@ elif [[ "$CURRENT_PLATFORM" == 'linux' ]]; then @@ -284,4 +284,4 @@ index 056a312e..3f9a3679 100644 -# From upstream release: v2.337.0 +# From upstream release: v2.338.0