Skip to content

ci!: pinned images and Xcode, --parallel, Pages permissions per job; drops iOS - #34

Merged
Paullo9 merged 5 commits into
mainfrom
issue-17-ci-gate
Oct 30, 2026
Merged

Paullo9 merged 5 commits into
mainfrom
issue-17-ci-gate

Conversation

@Paullo9

@Paullo9 Paullo9 commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Requested by Paul · project thread

What and why

The CI and release gate parts of #17 that no other open PR covers. Fixes #17 together with #26 (lint); #25 (Dependabot, private-reference scan) and #29 (tag check) are already on main.

  • Pinned toolchain. The test and test-floors jobs (also on the org Mac runner, same path) use Xcode 26.6 through DEVELOPER_DIR; the test job uses macos-26 with Xcode 26.6 and test-macos15 uses macos-15 with Xcode 26.0, both set through DEVELOPER_DIR. The docs build moves from macos-latest to macos-26 with Xcode 26.6. Nothing picks the newest Xcode with sort -V any more, which could select a beta.
  • --parallel. Both gates run tools/test.sh --parallel.
  • No parsing of ci.yml as text. tools/test.sh already exits with swift test's status and fails on any warning, so the gate step drops tee and the duplicate "No warnings" step goes. With them goes CIScriptTests.testCIGatePropagatesSwiftTestFailureThroughTee, the test that parsed ci.yml as text.
  • Pages permissions. pages: write and id-token: write move from the whole workflow to the deploy job. The build job only gets contents: read.
  • Stale comments in both workflows are rewritten. One said there were no package dependencies, which is not true.
  • iOS dropped. Package.swift no longer declares .iOS(.v18). SpectroKit never built for iOS, because FormatoKit's readers use macOS-only XMLDocument (FormatoKit#27). The PR is marked ! for release-please.

The other #17 items: the tag check (#29), Dependabot and the private-reference scan (#25) are on main; lint is #26.

Needs Paul: enable GitHub Pages (Settings, then Pages, source "GitHub Actions"), add a *.*.* tag rule to the github-pages environment, then re-run the Docs workflow on the latest tag.

Migration

SpectroKit no longer declares iOS. An app or package that lists .iOS(...) in its platforms and depends on SpectroKit has to drop iOS or stop depending on SpectroKit for that platform. It never built for iOS anyway (FormatoKit's readers use macOS-only XMLDocument, FormatoKit#27), so a macOS consumer changes nothing.

Checklist

  • swift test -c release --parallel --skip SpectroKitParityTests passes; both workflows parse as YAML
  • No tolerance changed
  • Docs updated (workflow comments)
  • Nothing described as validated

BREAKING CHANGE: SpectroKit drops the iOS platform declaration; consumers that list iOS must drop it (it never built for iOS: FormatoKit#27).

🤖 Generated with Claude Code

…loy job, no iOS claim (#17)

Both CI jobs and the docs build name their image and Xcode (DEVELOPER_DIR: 26.6 on macos-26, 26.0 on macos-15) instead of
picking the newest with sort -V, which can select a beta. The gate runs tools/test.sh --parallel; it already exits with
swift test's status and fails on any warning, so the tee and the second warnings step go, and with them the CIScriptTests
check that parsed ci.yml as text. Pages write and id-token move from the workflow to the deploy job. Package.swift drops
.iOS(.v18): SpectroKit has never built for iOS (FormatoKit's readers use macOS-only XMLDocument, FormatoKit#27).

Done: #17's toolchain, permissions and iOS parts; lint (#26), Dependabot and the reference scan (#25) land in their own PRs.
Next: Paul enables Pages for the DocC site.

BREAKING CHANGE: Package.swift no longer declares iOS; it never built there.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Paullo9 Paullo9 self-assigned this Oct 28, 2026
@Paullo9 Paullo9 changed the title ci!: pinned images and Xcode, --parallel, Pages permissions per job, no iOS claim ci!: pinned images and Xcode, --parallel, Pages permissions per job; drops iOS Oct 29, 2026
Paullo9 and others added 2 commits October 29, 2026 08:52
ci.yml: the Mac runner branch and the new test-floors job take the same pinned
DEVELOPER_DIR as `test` (no `sort -V` left), test-floors runs with --parallel.
The bug template no longer asks for an iOS version.

Done: #17's CI items are on main or here; next: Paul enables Pages for the docs deploy.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Paullo9
Paullo9 merged commit ec848d6 into main Oct 30, 2026
8 checks passed
@Paullo9
Paullo9 deleted the issue-17-ci-gate branch October 30, 2026 08:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CI and release gate: pin Xcode, Dependabot, lint, tag check, docs deploy

1 participant