From 90d1a688d23fe23431c0c9a0bdbc331ba53f7281 Mon Sep 17 00:00:00 2001 From: onevcat Date: Sun, 4 Oct 2026 17:24:35 +0900 Subject: [PATCH] Run CI on the Xcode 27 runner image The Swift 6.4 toolchain selects the tools-version 6.4 manifests of the Point-Free packages. These manifests depend on swift-issue-reporting 2.x instead of xctest-dynamic-overlay 1.x, so .package.resolved changes with the Xcode major version. Local builds and releases use Xcode 27, and CI used Xcode 26.6. Each side rewrote the lockfile that the other side committed, and CI tested other dependency versions than the release. Move the Mac app and iOS mirror jobs to the xcode-27 image and commit the lockfile that Xcode 27 resolves. --- .github/workflows/mirror-ios.yml | 3 ++- .github/workflows/test.yml | 5 ++++- .package.resolved | 20 ++++++++++---------- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/.github/workflows/mirror-ios.yml b/.github/workflows/mirror-ios.yml index 08e6d2e0f..22e67397a 100644 --- a/.github/workflows/mirror-ios.yml +++ b/.github/workflows/mirror-ios.yml @@ -33,7 +33,8 @@ jobs: # setup-macos. It also must not save the setup-macos caches, or it would take the cache keys # of the Mac app job. mirror-ios: - runs-on: macos-26 + # Use the same Xcode as the Mac app job (see test.yml). + runs-on: xcode-27 timeout-minutes: 20 permissions: contents: read diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ef76e1e5d..05776e281 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -22,7 +22,10 @@ concurrency: jobs: build: - runs-on: macos-26 + # The Swift 6.4 toolchain selects different package manifests than Swift 6.3 and earlier, + # so .package.resolved changes with the Xcode major version. Use the same Xcode as local + # builds and releases. GitHub marks this image as a preview until a macos-27 label exists. + runs-on: xcode-27 # A green run takes 6 to 10 minutes, and a slow runner has taken 2.5 times as long. The test # watchdog stops a hung test run sooner; this limit stops anything else that hangs. Without # it the default is 6 hours, so a stuck run had to be cancelled by hand. diff --git a/.package.resolved b/.package.resolved index 4176f44d7..8edf3462b 100644 --- a/.package.resolved +++ b/.package.resolved @@ -1,5 +1,5 @@ { - "originHash" : "caf2c77d23cf93f77c2108f23143413113571355b719b2708d3543c5f0d28a45", + "originHash" : "b72456afb5adf1ad80b06d38f53b03f88aa071251543d9a5080d09da0ca4a94c", "pins" : [ { "identity" : "combine-schedulers", @@ -118,6 +118,15 @@ "version" : "1.1.1" } }, + { + "identity" : "swift-issue-reporting", + "kind" : "remoteSourceControl", + "location" : "https://github.com/pointfreeco/swift-issue-reporting", + "state" : { + "revision" : "71c7c9a761d1ca6ed4ccb6ced040fe1c1a39e8e7", + "version" : "2.1.0" + } + }, { "identity" : "swift-json-schema", "kind" : "remoteSourceControl", @@ -163,15 +172,6 @@ "version" : "602.0.0" } }, - { - "identity" : "xctest-dynamic-overlay", - "kind" : "remoteSourceControl", - "location" : "https://github.com/pointfreeco/xctest-dynamic-overlay", - "state" : { - "revision" : "d9308ad679143c26a30dec52daefe82f54af2b82", - "version" : "1.13.1" - } - }, { "identity" : "yams", "kind" : "remoteSourceControl",