Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/patch_update_main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/patch_update_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
27 changes: 25 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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

Expand Down Expand Up @@ -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
Expand All @@ -175,6 +186,7 @@ jobs:
releaseNote = releaseNote.replace(/<LINUX_ARM64_SHA>/g, '${{needs.build.outputs.linux-arm64-sha}}')
releaseNote = releaseNote.replace(/<LINUX_PPC64LE_SHA>/g, '${{needs.build.outputs.linux-ppc64le-sha}}')
releaseNote = releaseNote.replace(/<LINUX_S390X_SHA>/g, '${{needs.build.outputs.linux-s390x-sha}}')
releaseNote = releaseNote.replace(/<LINUX_ARM_SHA>/g, '${{needs.build.outputs.linux-arm-sha}}')
console.log(releaseNote)
core.setOutput('version', runnerVersion);
core.setOutput('note', releaseNote);
Expand All @@ -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
Expand Down Expand Up @@ -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:
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,4 @@ TestResults
TestLogs
.DS_Store
.mono
**/*.DotSettings.user
**/*.DotSettings.user
19 changes: 19 additions & 0 deletions patches/runner-main-sdk8-arm.patch
Original file line number Diff line number Diff line change
@@ -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
19 changes: 19 additions & 0 deletions patches/runner-sdk8-arm.patch
Original file line number Diff line number Diff line change
@@ -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
Loading