Skip to content

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

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

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

Conversation

@odrobnik
Copy link
Copy Markdown
Contributor

@odrobnik odrobnik commented May 9, 2026

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>
Copy link
Copy Markdown

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

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 on lines +25 to +28
- name: Select Xcode 26.0
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: "26.0"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Run Xcode 26 jobs on a macOS image guaranteed to include it

setup-xcode only switches among Xcode versions that are already installed on the selected runner image, but this job requests xcode-version: "26.0" while using runs-on: macos-latest; when macos-latest points to an older image, both the macOS and iOS jobs fail before build/test starts. The GitHub runner docs explicitly note that -latest is not guaranteed to be the newest OS image, so this workflow is brittle unless you pin runs-on to a macOS 26 label (or relax to a version guaranteed on macos-latest).

Useful? React with 👍 / 👎.

@odrobnik odrobnik merged commit 68f7e5b into main May 9, 2026
5 checks passed
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