Skip to content

CI: standardize Actions (paths + concurrency + runners)#2

Merged
0xLeif merged 5 commits into
mainfrom
ci/standardize-actions
Jul 7, 2026
Merged

CI: standardize Actions (paths + concurrency + runners)#2
0xLeif merged 5 commits into
mainfrom
ci/standardize-actions

Conversation

@0xLeif

@0xLeif 0xLeif commented Jun 14, 2026

Copy link
Copy Markdown

Summary

Standardizes all 6 GitHub Actions CI workflows for the swift-spm (SwiftPM) build system.

  • Added swift-spm paths: filters to every branch-CI trigger (push/pull_request), scoped to Sources/**, Tests/**, Macros/**, Dependencies/**, Package.swift, Package.resolved, plus the workflow's own file. README/docs/LICENSE-only edits now trigger nothing.
  • Added a concurrency: group with cancel-in-progress: true to every workflow so rapid PR pushes cancel redundant cross-platform runs.
  • iOS-tvOS and macOS are schedule + pull_request: paths: applied only to the pull_request (branch-CI) trigger; the nightly schedule is left unfiltered per the standard.
  • Runners unchanged — already GitHub-hosted (ubuntu-latest/macos-latest/macos-15/windows-latest), correct for a PUBLIC repo. No self-hosted introduced (untrusted fork PRs).
  • Bumped actions/checkout to @v5 across all workflows; added timeout-minutes to every job.

Mirrors the CorvidLabs/merlin CI standard.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@gemini-code-assist

Copy link
Copy Markdown

Note

Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported.

- BinaryCodable+Collections.swift: use `public import DequeModule` and
  `public import OrderedCollections` instead of the `Collections`
  umbrella; under Swift 6's member import visibility, member lookups
  (append, reserveCapacity, etc.) require importing the module that
  actually defines Deque/OrderedSet/OrderedDictionary, and `public`
  is required since these types appear in public extensions here.
- Shaders target (HLSLCodeGenerator.swift, MSLCodeGenerator.swift):
  same member-import-visibility fix for OrderedSet; add the
  OrderedCollections product dependency to the Shaders target in
  Package.swift.
- Windows.yml: GateEngine's swift-tools-version is 6.1, but the
  workflow installed Swift 5.10, causing SwiftPM to refuse to resolve
  the manifest. Install Swift 6.1 via the non-deprecated
  swift-version/swift-build inputs instead.
- Android.yml: the legacy swift-5.8-android-24-sdk destination bundle
  is incompatible with the Swift toolchain now preinstalled on
  ubuntu-latest, causing missing-header errors (stdio.h, inttypes.h)
  when cross-compiling. Switch to the modern `swift sdk install`
  artifact-bundle flow with the 6.1 Android SDK release and
  `--swift-sdk aarch64-unknown-linux-android24`, matching this
  package's swift-tools-version floor.

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

cursor Bot commented Jul 7, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

- Android.yml: install a matching Swift 6.2 toolchain (rather than
  relying on whatever ubuntu-latest ships) and scope the cross-compiled
  build to GameMath + GateUtilities only, matching the same working
  configuration already validated on the swift-6-migration branch.
  Gravity (vendored C using bzero/glibc-only headers) and OpenALSoft
  (no Android config.h or audio backend wired up) are not portable to
  Android's Bionic libc and are out of scope here.
- OrientedBoundingBox3D.swift: decompose a compound arithmetic
  expression in the OBB-vs-OBB intersection test that a Swift 6.3
  toolchain fails to type-check in reasonable time (seen timing out
  the Linux build); behavior is unchanged.

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

cursor Bot commented Jul 7, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

RenderingGeometryComponent.swift, DeferredDelaySystem.swift,
RawGeometry.swift, and WASIPlatform.swift use Deque/OrderedSet but only
relied on the Collections umbrella module (or GateEngine.swift's
@_exported import), which does not satisfy Swift 6's per-file member
import visibility check. Import DequeModule/OrderedCollections
directly (public where the types appear in public API), and add the
matching product dependencies to the GateEngine target in Package.swift.
Mirrors the same fix already applied on the swift-6-migration branch.

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

cursor Bot commented Jul 7, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

Resolve workflow conflicts, preserving both intents:
- Keep #2 standardization: paths filters, concurrency groups, timeout-minutes,
  checkout@v5 bumps.
- Keep main's Swift-6-validated build steps/toolchain: Windows serialized build
  (swift build/test -v -j 1 -Xlinker /VERBOSE) at swift-6.2-release; Android SDK
  artifact-bundle flow; HTML5 SwiftWasm SDK build; Linux/Android Swift 6.2 install;
  iOS macos-15 + Xcode 26.1 select.
- Source conflict (BinaryCodable+Collections.swift): took main's Swift-6 version.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017ssHJrLJ5CwZDErEynqr7k
@cursor

cursor Bot commented Jul 7, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@0xLeif 0xLeif merged commit 0e16002 into main Jul 7, 2026
8 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