From 86c11604bcbc9747d4029543e724fb4378fa4d8a Mon Sep 17 00:00:00 2001 From: yan Date: Fri, 9 Oct 2026 14:14:35 +0300 Subject: [PATCH] ci: select the newest stable Xcode on the runner MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The runner's default toolchain is Swift 6.3, but Package.swift declares swift-tools-version 6.4, so the manifest is rejected before anything compiles. Hard-coding a path to Xcode_16.app does not help — that app carries an older toolchain too, and the path is not stable across runner images. Use setup-xcode with latest-stable so the job tracks whatever the image ships and fails loudly on the toolchain line if it is still too old. --- .github/workflows/ci.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 53e2cba..872da82 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,14 +13,17 @@ concurrency: jobs: build-and-test: name: Build and test - runs-on: macos-latest + runs-on: macos-26 steps: - uses: actions/checkout@v4 - # macos-latest already ships the default Xcode; selecting a version by path is - # brittle because runner images move it. Print it instead so a failure log says - # which toolchain produced it. + # This manifest declares swift-tools-version 6.4, so the runner needs Xcode 26. + # macos-latest still ships an older default; select it explicitly. + - uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: '26' + - name: Show toolchain run: | xcode-select -p