diff --git a/.github/workflows/patch_update_main.yml b/.github/workflows/patch_update_main.yml index 179e95a659b..92a8e4dd40b 100644 --- a/.github/workflows/patch_update_main.yml +++ b/.github/workflows/patch_update_main.yml @@ -70,7 +70,7 @@ jobs: mkdir -p patches touch successful_arches.txt - for arch in ppc64le s390x; do + for arch in ppc64le s390x arm; do echo "Processing $arch..." cd upstream-runner diff --git a/.github/workflows/patch_update_release.yml b/.github/workflows/patch_update_release.yml index 4be6088aad5..39893391042 100644 --- a/.github/workflows/patch_update_release.yml +++ b/.github/workflows/patch_update_release.yml @@ -64,7 +64,7 @@ jobs: mkdir -p patches touch successful_arches.txt - for arch in ppc64le s390x; do + for arch in ppc64le s390x arm; do echo "Processing $arch..." cd upstream-runner diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 351ad54d09e..a60d50d08a0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -54,9 +54,10 @@ jobs: linux-arm64-sha: ${{ steps.sha.outputs.linux-arm64-sha256 }} linux-s390x-sha: ${{ steps.sha.outputs.linux-s390x-sha256 }} linux-ppc64le-sha: ${{ steps.sha.outputs.linux-ppc64le-sha256 }} + linux-arm-sha: ${{ steps.sha.outputs.linux-arm-sha256 }} strategy: matrix: - runtime: [ linux-s390x, linux-ppc64le, linux-x64, linux-arm64 ] + runtime: [ linux-s390x, linux-ppc64le, linux-x64, linux-arm64, linux-arm ] include: - runtime: linux-s390x runs_on: s390x @@ -72,6 +73,10 @@ jobs: - runtime: linux-arm64 runs_on: arm64 + - runtime: linux-arm + runs_on: arm + patch_tag: arm + runs-on: [ self-hosted, noble, "${{ matrix.runs_on }}" ] steps: - uses: actions/checkout@v4 @@ -80,7 +85,7 @@ jobs: run: sudo apt-get update && sudo apt-get install -y dotnet-sdk-8.0 - name: Apply patches - if: matrix.runtime == 'linux-s390x' || matrix.runtime == 'linux-ppc64le' + if: matrix.runtime == 'linux-s390x' || matrix.runtime == 'linux-ppc64le' || matrix.runtime == 'linux-arm' run: | git apply patches/runner-sdk8-${{ matrix.patch_tag }}.patch @@ -161,6 +166,12 @@ jobs: name: runner-packages-linux-s390x path: ./ + - name: Download Artifact (linux-arm) + uses: actions/download-artifact@v4 + with: + name: runner-packages-linux-arm + path: ./ + # Create ReleaseNote file - name: Create ReleaseNote id: releaseNote @@ -175,6 +186,7 @@ jobs: releaseNote = releaseNote.replace(//g, '${{needs.build.outputs.linux-arm64-sha}}') releaseNote = releaseNote.replace(//g, '${{needs.build.outputs.linux-ppc64le-sha}}') releaseNote = releaseNote.replace(//g, '${{needs.build.outputs.linux-s390x-sha}}') + releaseNote = releaseNote.replace(//g, '${{needs.build.outputs.linux-arm-sha}}') console.log(releaseNote) core.setOutput('version', runnerVersion); core.setOutput('note', releaseNote); @@ -186,6 +198,7 @@ jobs: echo "${{needs.build.outputs.linux-arm64-sha}} actions-runner-linux-arm64-${{ steps.releaseNote.outputs.version }}.tar.gz" | shasum -a 256 -c echo "${{needs.build.outputs.linux-ppc64le-sha}} actions-runner-linux-ppc64le-${{ steps.releaseNote.outputs.version }}.tar.gz" | shasum -a 256 -c echo "${{needs.build.outputs.linux-s390x-sha}} actions-runner-linux-s390x-${{ steps.releaseNote.outputs.version }}.tar.gz" | shasum -a 256 -c + echo "${{needs.build.outputs.linux-arm-sha}} actions-runner-linux-arm-${{ steps.releaseNote.outputs.version }}.tar.gz" | shasum -a 256 -c # Create GitHub release - uses: actions/create-release@master @@ -239,6 +252,16 @@ jobs: asset_name: actions-runner-linux-s390x-${{ steps.releaseNote.outputs.version }}.tar.gz asset_content_type: application/octet-stream + - name: Upload Release Asset (linux-arm) + uses: actions/upload-release-asset@v1.0.2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.createRelease.outputs.upload_url }} + asset_path: ${{ github.workspace }}/actions-runner-linux-arm-${{ steps.releaseNote.outputs.version }}.tar.gz + asset_name: actions-runner-linux-arm-${{ steps.releaseNote.outputs.version }}.tar.gz + asset_content_type: application/octet-stream + - uses: mattermost/action-mattermost-notify@master if: ${{ failure() }} with: diff --git a/.gitignore b/.gitignore index 411fe4011a5..6bcce9d3ea9 100644 --- a/.gitignore +++ b/.gitignore @@ -27,4 +27,4 @@ TestResults TestLogs .DS_Store .mono -**/*.DotSettings.user \ No newline at end of file +**/*.DotSettings.user diff --git a/patches/runner-main-sdk8-arm.patch b/patches/runner-main-sdk8-arm.patch new file mode 100644 index 00000000000..3e3652ef868 --- /dev/null +++ b/patches/runner-main-sdk8-arm.patch @@ -0,0 +1,19 @@ +diff --git a/src/Misc/externals.sh b/src/Misc/externals.sh +index 4330017..b014d47 100755 +--- a/src/Misc/externals.sh ++++ b/src/Misc/externals.sh +@@ -7,6 +7,7 @@ NODE_ALPINE_URL=https://github.com/actions/alpine_nodejs/releases/download + # When you update Node versions you must also create a new release of alpine_nodejs at that updated version. + # Follow the instructions here: https://github.com/actions/alpine_nodejs?tab=readme-ov-file#getting-started + NODE20_VERSION="20.20.2" ++NODE22_VERSION="22.22.3" + NODE24_VERSION="24.16.0" + + get_abs_path() { +@@ -186,4 +187,5 @@ fi + + if [[ "$PACKAGERUNTIME" == "linux-arm" ]]; then + acquireExternalTool "$NODE_URL/v${NODE20_VERSION}/node-v${NODE20_VERSION}-linux-armv7l.tar.gz" node20 fix_nested_dir ++ acquireExternalTool "$NODE_URL/v${NODE22_VERSION}/node-v${NODE22_VERSION}-linux-armv7l.tar.gz" node22 fix_nested_dir + fi +# From upstream commit: c6a124e18496a6e5d2357415052d1799afc64b63 diff --git a/patches/runner-sdk8-arm.patch b/patches/runner-sdk8-arm.patch new file mode 100644 index 00000000000..dcbad60183e --- /dev/null +++ b/patches/runner-sdk8-arm.patch @@ -0,0 +1,19 @@ +diff --git a/src/Misc/externals.sh b/src/Misc/externals.sh +index 0e08e65..5a69a2f 100755 +--- a/src/Misc/externals.sh ++++ b/src/Misc/externals.sh +@@ -7,6 +7,7 @@ NODE_ALPINE_URL=https://github.com/actions/alpine_nodejs/releases/download + # When you update Node versions you must also create a new release of alpine_nodejs at that updated version. + # Follow the instructions here: https://github.com/actions/alpine_nodejs?tab=readme-ov-file#getting-started + NODE20_VERSION="20.20.2" ++NODE22_VERSION="22.22.3" + NODE24_VERSION="24.15.0" + + get_abs_path() { +@@ -186,4 +187,5 @@ fi + + if [[ "$PACKAGERUNTIME" == "linux-arm" ]]; then + acquireExternalTool "$NODE_URL/v${NODE20_VERSION}/node-v${NODE20_VERSION}-linux-armv7l.tar.gz" node20 fix_nested_dir ++ acquireExternalTool "$NODE_URL/v${NODE22_VERSION}/node-v${NODE22_VERSION}-linux-armv7l.tar.gz" node22 fix_nested_dir + fi +# From upstream release: v2.334.0