From 07b150501604dcf3eed92d6ff9a56249dd584eb7 Mon Sep 17 00:00:00 2001 From: Todd Anderson Date: Fri, 31 Jul 2026 14:23:47 -0400 Subject: [PATCH 1/2] fix: restore client SDK CI to macos-latest with Xcode 26.3 and Android 34 install (SDK-2623) --- .github/actions/xcode-select/action.yml | 2 +- .github/workflows/release-sdk-client.yml | 25 ++++++++++++++++++++---- .github/workflows/sdk-client-ci.yml | 21 ++++++++++++++++++-- 3 files changed, 41 insertions(+), 7 deletions(-) diff --git a/.github/actions/xcode-select/action.yml b/.github/actions/xcode-select/action.yml index 0ff50aae..69b8de48 100644 --- a/.github/actions/xcode-select/action.yml +++ b/.github/actions/xcode-select/action.yml @@ -4,7 +4,7 @@ inputs: xcode-version: description: 'The version of Xcode to select' required: true - default: '16.2' + default: '26.3' runs: using: composite diff --git a/.github/workflows/release-sdk-client.yml b/.github/workflows/release-sdk-client.yml index 217afd35..60574da4 100644 --- a/.github/workflows/release-sdk-client.yml +++ b/.github/workflows/release-sdk-client.yml @@ -17,7 +17,7 @@ on: jobs: # Building is done on mac runner due to xcode build dependencies build: - runs-on: macos-15 + runs-on: macos-latest permissions: id-token: write contents: write @@ -28,12 +28,29 @@ jobs: - uses: ./.github/actions/xcode-select with: - xcode-version: '16.2' + xcode-version: '26.3' - name: Setup Env from project's Env file shell: bash run: echo "$(cat pkgs/sdk/client/github_actions.env)" >> $GITHUB_ENV + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 8.0 + + - name: Restore workloads + shell: bash + run: dotnet workload restore ${{ env.PROJECT_FILE }} + + # The macOS runner image no longer ships the API level 34 platform. + - name: Install Android SDK dependencies + shell: bash + run: > + dotnet build ${{ env.PROJECT_FILE }} -f net8.0-android -t:InstallAndroidDependencies + -p:AndroidSdkDirectory="${ANDROID_HOME:-$HOME/Library/Android/sdk}" + -p:AcceptAndroidSDKLicenses=True + - uses: launchdarkly/gh-actions/actions/release-secrets@release-secrets-v1.2.0 name: Get secrets with: @@ -112,7 +129,7 @@ jobs: # Packing is done on Mac due to ios workload requirements. publish: - runs-on: macos-15 + runs-on: macos-latest needs: sign-dlls permissions: id-token: write @@ -123,7 +140,7 @@ jobs: - uses: ./.github/actions/xcode-select with: - xcode-version: '16.2' + xcode-version: '26.3' - name: Setup Env from project's Env file shell: bash diff --git a/.github/workflows/sdk-client-ci.yml b/.github/workflows/sdk-client-ci.yml index 543ad2e8..caed6215 100644 --- a/.github/workflows/sdk-client-ci.yml +++ b/.github/workflows/sdk-client-ci.yml @@ -13,7 +13,7 @@ jobs: build-and-test: strategy: matrix: - os: [macos-15] + os: [macos-latest] fail-fast: false runs-on: ${{ matrix.os }} permissions: @@ -24,12 +24,29 @@ jobs: - uses: ./.github/actions/xcode-select with: - xcode-version: '16.2' + xcode-version: '26.3' - name: Setup Env from project's Env file shell: bash run: echo "$(cat pkgs/sdk/client/github_actions.env)" >> $GITHUB_ENV + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 8.0 + + - name: Restore workloads + shell: bash + run: dotnet workload restore ${{ env.PROJECT_FILE }} + + # The macOS runner image no longer ships the API level 34 platform. + - name: Install Android SDK dependencies + shell: bash + run: > + dotnet build ${{ env.PROJECT_FILE }} -f net8.0-android -t:InstallAndroidDependencies + -p:AndroidSdkDirectory="${ANDROID_HOME:-$HOME/Library/Android/sdk}" + -p:AcceptAndroidSDKLicenses=True + - uses: ./.github/actions/ci with: project_file: ${{ env.PROJECT_FILE}} From bf1656a7bebdbd6dea02217f1d925b2430cbebdc Mon Sep 17 00:00:00 2001 From: Todd Anderson Date: Mon, 3 Aug 2026 09:51:27 -0400 Subject: [PATCH 2/2] fix: pin CI to .NET 8 SDK before Android workload restore Without a global.json the runner's default .NET 10 SDK feature band resolves the workload manifest, installing the .NET 10 Android workload (API 36 packs). Building -f net8.0-android then fails to find InstallAndroidDependencies because the .NET 8 Android SDK pack was never installed. Copy global.example.json into place before the new dotnet steps so they resolve to the .NET 8 feature band and install the .NET 8 Android workload; the ci action's existing Remove global.json step handles cleanup. --- .github/workflows/release-sdk-client.yml | 4 ++++ .github/workflows/sdk-client-ci.yml | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/.github/workflows/release-sdk-client.yml b/.github/workflows/release-sdk-client.yml index 60574da4..c7f91a56 100644 --- a/.github/workflows/release-sdk-client.yml +++ b/.github/workflows/release-sdk-client.yml @@ -39,6 +39,10 @@ jobs: with: dotnet-version: 8.0 + - name: Copy global.json in place + shell: bash + run: cp global.example.json global.json + - name: Restore workloads shell: bash run: dotnet workload restore ${{ env.PROJECT_FILE }} diff --git a/.github/workflows/sdk-client-ci.yml b/.github/workflows/sdk-client-ci.yml index caed6215..90db419b 100644 --- a/.github/workflows/sdk-client-ci.yml +++ b/.github/workflows/sdk-client-ci.yml @@ -35,6 +35,10 @@ jobs: with: dotnet-version: 8.0 + - name: Copy global.json in place + shell: bash + run: cp global.example.json global.json + - name: Restore workloads shell: bash run: dotnet workload restore ${{ env.PROJECT_FILE }}