diff --git a/.github/workflows/build-cli-native-archives.yml b/.github/workflows/build-cli-native-archives.yml index fbcd43eca02..983d9ea4580 100644 --- a/.github/workflows/build-cli-native-archives.yml +++ b/.github/workflows/build-cli-native-archives.yml @@ -13,20 +13,22 @@ on: targets: description: > JSON array of target objects to build. Each object must have 'os', 'runner', and 'rids' keys. - Defaults to all platforms (linux-x64, win-x64, osx-arm64). + Defaults to all platforms (linux-x64, linux-arm64, win-x64, win-arm64, osx-arm64). required: false type: string default: >- [ {"os": "ubuntu-latest", "runner": "8-core-ubuntu-latest", "rids": "linux-x64"}, + {"os": "ubuntu-latest", "runner": "ubuntu-24.04-arm", "rids": "linux-arm64"}, {"os": "windows-latest", "runner": "windows-latest", "rids": "win-x64"}, + {"os": "windows-latest", "runner": "windows-11-arm", "rids": "win-arm64"}, {"os": "macos-latest", "runner": "macos-latest", "rids": "osx-arm64"} ] jobs: build_cli_archives: - name: Build CLI (${{ matrix.targets.os }}) + name: Build CLI (${{ matrix.targets.rids }}) runs-on: ${{ matrix.targets.runner }} strategy: matrix: diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 62ad4c43211..76b20e8fc85 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -149,11 +149,15 @@ jobs: shell: pwsh run: | $runnerOs = "${{ runner.os }}" - switch ($runnerOs) { - 'Linux' { $rid = 'linux-x64' } - 'macOS' { $rid = 'osx-arm64' } - 'Windows' { $rid = 'win-x64' } - Default { Write-Error "Unknown runner.os '$runnerOs' for RID mapping"; exit 1 } + $runnerArch = "${{ runner.arch }}" + $rid = switch ("$runnerOs-$runnerArch") { + 'Linux-X64' { 'linux-x64' } + 'Linux-ARM64' { 'linux-arm64' } + 'Windows-X64' { 'win-x64' } + 'Windows-ARM64' { 'win-arm64' } + 'macOS-ARM64' { 'osx-arm64' } + 'macOS-X64' { 'osx-x64' } + Default { Write-Error "Unknown runner OS/arch '$runnerOs-$runnerArch' for RID mapping"; exit 1 } } Write-Host "Using RID=$rid" "RID=$rid" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index b2295116337..f8b63d0202c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -47,6 +47,13 @@ jobs: versionOverrideArg: ${{ inputs.versionOverrideArg }} targets: '[{"os": "ubuntu-latest", "runner": "8-core-ubuntu-latest", "rids": "linux-x64"}]' + build_cli_archive_linux_arm64: + name: Build native CLI archive (Linux ARM64) + uses: ./.github/workflows/build-cli-native-archives.yml + with: + versionOverrideArg: ${{ inputs.versionOverrideArg }} + targets: '[{"os": "ubuntu-latest", "runner": "ubuntu-24.04-arm", "rids": "linux-arm64"}]' + # Per-OS CLI archive builds produce RID-specific DCP and Dashboard NuGets. # Split by OS so that test jobs can depend on just their platform's archive, # allowing Linux tests to start as soon as the Linux archive completes @@ -58,6 +65,13 @@ jobs: versionOverrideArg: ${{ inputs.versionOverrideArg }} targets: '[{"os": "windows-latest", "runner": "windows-latest", "rids": "win-x64"}]' + build_cli_archive_windows_arm64: + name: Build native CLI archive (Windows ARM64) + uses: ./.github/workflows/build-cli-native-archives.yml + with: + versionOverrideArg: ${{ inputs.versionOverrideArg }} + targets: '[{"os": "windows-latest", "runner": "windows-11-arm", "rids": "win-arm64"}]' + build_cli_archive_macos: name: Build native CLI archive (macOS) uses: ./.github/workflows/build-cli-native-archives.yml @@ -226,7 +240,9 @@ jobs: setup_for_tests, build_packages, build_cli_archive_linux, + build_cli_archive_linux_arm64, build_cli_archive_windows, + build_cli_archive_windows_arm64, build_cli_archive_macos, extension_tests_win, typescript_sdk_tests,