Skip to content
4 changes: 3 additions & 1 deletion .github/actions/install-dependencies/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ runs:
id: cache_dependencies
with:
path: ${{ env.CACHED_DEPENDENCY_PATHS }}
key: ${{ steps.compute_lockfile_hash.outputs.hash }}
key:
${{ steps.compute_lockfile_hash.outputs.hash }}${{ runner.arch != 'X64' && format('-{0}', runner.arch) || ''
}}

- name: Install dependencies
if: steps.cache_dependencies.outputs.cache-hit != 'true'
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/restore-cache/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ runs:
uses: actions/cache/restore@v6.1.0
with:
path: ${{ env.CACHED_DEPENDENCY_PATHS }}
key: ${{ inputs.dependency_cache_key }}
key: ${{ inputs.dependency_cache_key }}${{ runner.arch != 'X64' && format('-{0}', runner.arch) || '' }}

- name: Restore build artifacts
uses: actions/download-artifact@v7
Expand Down
31 changes: 17 additions & 14 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ jobs:
job_build:
name: Build
needs: job_get_metadata
runs-on: ubuntu-24.04
runs-on: ubuntu-24.04-arm
timeout-minutes: 15
if: |
needs.job_get_metadata.outputs.changed_any_code == 'true' ||
Expand Down Expand Up @@ -128,7 +128,7 @@ jobs:
path: |
.nx/cache
.nx/workspace-data
key: ${{ env.NX_CACHE_KEY }}
key: ${{ env.NX_CACHE_KEY }}-${{ runner.arch }}

- name: Upload build artifacts
uses: actions/upload-artifact@v7
Expand Down Expand Up @@ -215,7 +215,7 @@ jobs:
path: |
.nx/cache
.nx/workspace-data
key: ${{ env.NX_CACHE_KEY }}
key: ${{ env.NX_CACHE_KEY }}-${{ runner.arch }}

- name: Restore caches
uses: ./.github/actions/restore-cache
Expand All @@ -238,7 +238,7 @@ jobs:
name: Build bundles
needs: [job_get_metadata, job_build]
timeout-minutes: 10
runs-on: ubuntu-24.04
runs-on: ubuntu-24.04-arm
steps:
- name: Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }})
uses: actions/checkout@v7
Expand All @@ -254,7 +254,7 @@ jobs:
path: |
.nx/cache
.nx/workspace-data
key: ${{ env.NX_CACHE_KEY }}
key: ${{ env.NX_CACHE_KEY }}-${{ runner.arch }}

- name: Restore caches
uses: ./.github/actions/restore-cache
Expand Down Expand Up @@ -292,7 +292,7 @@ jobs:
name: Size Check
needs: [job_get_metadata, job_build, job_build_bundles]
timeout-minutes: 15
runs-on: ubuntu-24.04
runs-on: ubuntu-24.04-arm
if:
github.event_name == 'pull_request' || needs.job_get_metadata.outputs.is_base_branch == 'true' ||
needs.job_get_metadata.outputs.is_release == 'true'
Expand Down Expand Up @@ -327,7 +327,7 @@ jobs:
# inter-package dependencies resolve cleanly.
needs: [job_get_metadata, job_build]
timeout-minutes: 10
runs-on: ubuntu-24.04
runs-on: ubuntu-24.04-arm
steps:
- name: Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }})
uses: actions/checkout@v7
Expand Down Expand Up @@ -509,7 +509,7 @@ jobs:
needs: [job_get_metadata, job_build]
if: needs.job_build.outputs.changed_bun == 'true' || github.event_name != 'pull_request'
timeout-minutes: 10
runs-on: ubuntu-24.04
runs-on: ubuntu-24.04-arm
strategy:
fail-fast: false
matrix:
Expand Down Expand Up @@ -541,7 +541,7 @@ jobs:
needs: [job_get_metadata, job_build]
if: needs.job_build.outputs.changed_deno == 'true' || github.event_name != 'pull_request'
timeout-minutes: 10
runs-on: ubuntu-24.04
runs-on: ubuntu-24.04-arm
steps:
- name: Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }})
uses: actions/checkout@v7
Expand Down Expand Up @@ -569,7 +569,7 @@ jobs:
name: Node (${{ matrix.node }}) Unit Tests
needs: [job_get_metadata, job_build]
timeout-minutes: 10
runs-on: ubuntu-24.04
runs-on: ubuntu-24.04-arm
# Node 27 is an alpha: its ABI and APIs can change, so its failures must not fail the required checks.
continue-on-error: ${{ matrix.node == '^27.0.0-0' }}
strategy:
Expand Down Expand Up @@ -776,6 +776,7 @@ jobs:
name: Node (${{ matrix.node }}) Integration Tests (${{ matrix.shard }}/3)
needs: [job_get_metadata, job_build]
if: needs.job_build.outputs.changed_node_integration == 'true' || github.event_name != 'pull_request'
# The tedious suite uses a SQL Server container that requires x86-64.
runs-on: ubuntu-24.04
timeout-minutes: 20
# Node 27 is an alpha: its ABI and APIs can change, so its failures must not fail the required checks.
Expand Down Expand Up @@ -868,7 +869,7 @@ jobs:
if:
needs.job_get_metadata.outputs.is_release != 'true' && (needs.job_build.outputs.changed_cloudflare_integration ==
'true' || github.event_name != 'pull_request')
runs-on: ubuntu-24.04
runs-on: ubuntu-24.04-arm
timeout-minutes: 15
strategy:
fail-fast: false
Expand All @@ -881,7 +882,7 @@ jobs:
name: Bundler Plugin Integration Tests (Node ${{ matrix.node }})
needs: [job_get_metadata, job_build]
if: needs.job_build.outputs.changed_bundler_plugin_integration == 'true' || github.event_name != 'pull_request'
runs-on: ubuntu-24.04
runs-on: ubuntu-24.04-arm
timeout-minutes: 15
# Node 27 is an alpha: its ABI and APIs can change, so its failures must not fail the required checks.
continue-on-error: ${{ matrix.node == '^27.0.0-0' }}
Expand Down Expand Up @@ -911,6 +912,7 @@ jobs:
name: Bun (${{ matrix.bun }}) Integration Tests (${{ matrix.shard }}/2)
needs: [job_get_metadata, job_build]
if: needs.job_build.outputs.changed_bun_integration == 'true' || github.event_name != 'pull_request'
# Shared Node suites include the x86-only SQL Server container.
runs-on: ubuntu-24.04
timeout-minutes: 15
strategy:
Expand Down Expand Up @@ -945,6 +947,7 @@ jobs:
name: Deno Integration Tests (${{ matrix.shard }}/2)
needs: [job_get_metadata, job_build]
if: needs.job_build.outputs.changed_deno_integration == 'true' || github.event_name != 'pull_request'
# Shared Node suites include the x86-only SQL Server container.
runs-on: ubuntu-24.04
timeout-minutes: 15
strategy:
Expand Down Expand Up @@ -990,7 +993,7 @@ jobs:
always() &&
needs.job_build.result == 'success'
needs: [job_get_metadata, job_build]
runs-on: ubuntu-24.04
runs-on: ubuntu-24.04-arm
timeout-minutes: 15
steps:
- name: Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }})
Expand All @@ -1007,7 +1010,7 @@ jobs:
path: |
.nx/cache
.nx/workspace-data
key: ${{ env.NX_CACHE_KEY }}
key: ${{ env.NX_CACHE_KEY }}-${{ runner.arch }}

- name: Restore caches
uses: ./.github/actions/restore-cache
Expand Down
Loading