diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 42a355b..0a07793 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,20 +9,24 @@ permissions: jobs: build_pack_ios: - runs-on: macos-latest + runs-on: macos-15 steps: - uses: actions/checkout@v4 + - name: Select Xcode 26.3 + # Pinned: the native artifacts must stay consumable by Xcode 26.3 toolchains. + run: sudo xcode-select --switch /Applications/Xcode_26.3.app/Contents/Developer + - uses: actions/setup-dotnet@v4 with: - dotnet-version: "10.0.x" + dotnet-version: "10.0.203" - name: Validate feature selection run: bash tests/validate-feature-selection.sh - name: Install iOS workload run: | - dotnet workload install ios + dotnet workload install ios --version 10.0.203 - name: Cache NuGet uses: actions/cache@v4 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index fa519bb..15bdae9 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -17,7 +17,7 @@ permissions: jobs: pack_and_publish: - runs-on: macos-latest + runs-on: macos-15 permissions: contents: read packages: write @@ -67,16 +67,20 @@ jobs: echo "Package version: ${VERSION}" echo "Publish target: ${PUBLISH_TARGET}" + - name: Select Xcode 26.3 + # Pinned: the native artifacts must stay consumable by Xcode 26.3 toolchains. + run: sudo xcode-select --switch /Applications/Xcode_26.3.app/Contents/Developer + - uses: actions/setup-dotnet@v4 with: - dotnet-version: "10.0.x" + dotnet-version: "10.0.203" - name: Validate feature selection run: bash tests/validate-feature-selection.sh - name: Install iOS workload run: | - dotnet workload install ios + dotnet workload install ios --version 10.0.203 - name: Cache NuGet uses: actions/cache@v4 diff --git a/.github/workflows/sample-ios.yml b/.github/workflows/sample-ios.yml index 5800a95..80c3744 100644 --- a/.github/workflows/sample-ios.yml +++ b/.github/workflows/sample-ios.yml @@ -19,37 +19,18 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Setup Xcode 26.0 - uses: maxim-lobanov/setup-xcode@v1 - with: - xcode-version: "26.0" + - name: Select Xcode 26.3 + # Pinned: the native artifacts must stay consumable by Xcode 26.3 toolchains. + run: sudo xcode-select --switch /Applications/Xcode_26.3.app/Contents/Developer - uses: actions/setup-dotnet@v4 with: - dotnet-version: "10.0.x" - - - name: Pin workload update mode (manifests) - shell: bash - run: | - dotnet workload config --update-mode manifests - dotnet workload config --update-mode - - - name: Purge incompatible iOS packs (cache defense) - shell: bash - run: | - set -euo pipefail - PACKS_DIR="$HOME/.dotnet/packs" - for v in 26.2; do - if [ -d "$PACKS_DIR" ] && compgen -G "$PACKS_DIR/Microsoft.iOS.*_${v}*" > /dev/null; then - echo "Removing cached iOS ${v} packs from $PACKS_DIR" - rm -rf "$PACKS_DIR"/Microsoft.iOS.*_${v}* - fi - done + dotnet-version: "10.0.203" - name: Install iOS workload shell: bash run: | - dotnet workload install ios --skip-manifest-update + dotnet workload install ios --version 10.0.203 - name: Diagnostics (.NET + workloads) shell: bash