Skip to content

Add GitHub Actions CI: macOS, iOS, Linux, Windows, Android - #3

Merged
odrobnik merged 2 commits into
mainfrom
claude/ci-setup
May 9, 2026
Merged

Add GitHub Actions CI: macOS, iOS, Linux, Windows, Android#3
odrobnik merged 2 commits into
mainfrom
claude/ci-setup

Conversation

@odrobnik

@odrobnik odrobnik commented May 9, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Five-platform CI matrix mirroring the SwiftBash workflow: full build + test on macOS / Linux / Windows / Android, compile-only check on iOS.
  • iOS job specifically covers the `#if canImport(Subprocess)` gating in DefaultProcessLauncher.swift — `swift-subprocess` is platform-excluded on iOS / tvOS / watchOS / visionOS (kernel forbids `posix_spawn` / `fork`), and this verifies the module still compiles against the iOS SDK without it.
  • Simpler than SwiftBash's setup: no C-library deps, so no `apt-get` for Linux and no vcpkg for Windows.

Test plan

  • Workflow triggers on push to `main` and on PRs targeting `main`
  • All five jobs (`build-macos`, `build-ios`, `build-linux`, `build-windows`, `build-android`) succeed on this PR
  • Once merged, validates #2 on rebase

🤖 Generated with Claude Code

odrobnik and others added 2 commits May 9, 2026 10:44
Five-platform matrix mirroring the SwiftBash workflow: full build +
test on macOS / Linux / Windows / Android, and a compile-only check
on iOS (covers the `#if canImport(Subprocess)` gating that keeps the
module building when swift-subprocess is platform-excluded).

Simpler than SwiftBash's setup because ShellKit has no C-library
deps — swift-argument-parser and swift-subprocess are pure Swift, so
the Linux job needs no `apt-get install` and the Windows job needs no
vcpkg provisioning.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The auto-generated SPM scheme is `ShellKit`, not `ShellKit-Package`.
The latter is the convention some Xcode versions / SPM generators use,
but for this package xcodebuild lists the scheme as plain `ShellKit`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8546909238

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/swift.yml
@odrobnik
odrobnik merged commit 68f7e5b into main May 9, 2026
5 checks passed
odrobnik added a commit that referenced this pull request Jun 5, 2026
`setup-xcode` only switches among Xcodes already installed on the chosen
image, but the macOS/iOS jobs requested xcode-version 26.0 on
`macos-latest`, which is not guaranteed to point at an image carrying
Xcode 26 — when the `-latest` alias rotates to an older image both jobs
fail before build/test. Pin to `macos-26`, the native Xcode 26 image
(ships Xcode 26.0.1), so the toolchain selection is deterministic.

Resolves the unresolved Codex P1 on #3.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
odrobnik added a commit that referenced this pull request Jun 5, 2026
`setup-xcode` only selects among Xcodes already installed on the image,
but the macOS/iOS jobs requested xcode-version 26.0 on `macos-latest`,
which isn't guaranteed to carry Xcode 26 — when the `-latest` alias
rotates to an older image both jobs fail before build/test. Pin to
`macos-15`, which ships Xcode 26.0.1 AND pre-installs the iOS platform
build-ios needs. (`macos-26` carries Xcode 26 but not the iOS SDK, so it
would need a per-run `xcodebuild -downloadPlatform iOS`.)

Resolves the unresolved Codex P1 on #3.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
odrobnik added a commit that referenced this pull request Jun 5, 2026
`setup-xcode` only selects among Xcodes already installed on the image,
but the macOS/iOS jobs requested xcode-version 26.0 on `macos-latest`,
which isn't guaranteed to carry Xcode 26 — when the `-latest` alias
rotates to an older image both jobs fail before build/test. Pin to
`macos-15`, which ships Xcode 26.0.1 AND pre-installs the iOS platform
build-ios needs. (`macos-26` carries Xcode 26 but not the iOS SDK, so it
would need a per-run `xcodebuild -downloadPlatform iOS`.)

Resolves the unresolved Codex P1 on #3.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.

1 participant