Restore Swift 6.1 Windows, remove wasm excludes, disable fail-fast on Ubuntu#135
Restore Swift 6.1 Windows, remove wasm excludes, disable fail-fast on Ubuntu#135
Conversation
#128) - Add concurrency groups to cancel in-progress runs on same branch - Add paths-ignore to skip CI on doc-only changes - Add pull_request trigger for PRs to main - Add configure job with dynamic matrix (minimal on feature branches, full on main/PRs) - Gate Windows builds to full matrix only - Split macOS into core (always) and full (main/PRs only) jobs - Update lint/docs conditions to run when optional jobs are skipped - Update all GitHub Actions to latest versions (checkout v6, cache v5, codecov v6, etc.) - Add cache cleanup workflows for deleted branches and closed PRs - Update CodeQL workflow action versions Closes #128, closes #126, closes #127 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Ubuntu matrix: add Swift 6.2 and 6.3, remove nightly versions; use 6.3 as single-version for feature branches - build-macos: keep SPM-only; move macOS Build to build-macos-full - build-macos-full: add macOS Build with Xcode 26.4; update iOS/watchOS/tvOS/visionOS to Xcode 26.4 / osVersion 26.4 - Add build-android and build-wasm jobs (full-matrix only) - Update lint and docs needs to include new jobs - codeql.yml: update runner to macos-26, Xcode to 26.4 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- configure outputs separate ubuntu-os/swift/type arrays (matching MonthBar pattern) - build-ubuntu composes matrix from all three outputs; wasm/wasm-embedded types use swift:6.3-noble container; type and wasmtime-version: 41.0.3 passed to swift-build - Remove separate build-wasm job - Android: add swift 6.3 alongside 6.2, add free-disk-space step, android-swift-version/android-api-level/android-run-tests parameters, coverage upload Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- configure: guard ci-skip check with event_name check so it always runs on pull_request events (github.event.head_commit is null on PRs) - build-macos: add needs: [configure], gate on configure success so ci-skip propagates via dependency chain instead of re-checking head_commit.message Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The swift:6.3 Docker image does not include curl, which is required by the Codecov uploader. Applies to all 6.3 builds including wasm types. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add version branch pattern to pull_request trigger so PRs targeting v0.0.4 (and similar) fire the full matrix CI - Use github.head_ref || github.ref_name for concurrency group so push and pull_request events for the same branch share a group; PR run (arrives second) cancels the concurrent push run Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Settings.projectRoot now uses a 3-strategy fallback matching the SyndiKit pattern: working directory first (reliable for WASM/Android/SPM), then #filePath-relative (macOS/Linux CI), then walking up parent directories. Add android-copy-files to copy Documentation.docc to the Android emulator's working directory so the path resolution finds the files via Strategy 1. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Examples/ (2.1MB) and full Documentation.docc (with images) exceed WASM memory constraints. On WASI, use only the two lightweight tutorial .md files (~36KB total). Matches SyndiKit's #if os(WASI) subset pattern. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add Strategy 1b to Settings.projectRoot: detect Documentation.docc/ in working dir (android-copy-files copies last component only) - Add #if os(Android) branch to docPaths with prefix-less paths matching the flat copy layout on Android devices - Add id: build to swift-build steps and gate coverage upload/processing on steps.build.outputs.contains-code-coverage == 'true' across all jobs Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1.4.6 adds .gitattributes for symlinks on Windows, fixing build failures where symlinked plugin source files were checked out as plain text, causing 'cannot find Lock in scope' and related errors. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
On Android, Documentation.docc is copied flat to the working directory without the Sources/SyntaxKit/ prefix. Centralize the prefix logic in resolveFilePath so test methods use short paths and Settings adds the prefix for non-Android platforms. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix Windows matrix to use proper cross-product (runs-on × swift) instead of mismatched include entries - Fix lint/docs if conditions to guard against null head_commit on PR events - Fix cache cleanup to skip tag deletions (only process branch deletes) - Add cancellation guard to build-macos-full - Remove hardcoded swift:6.3-noble container for WASM builds; use matrix version - Add paths-ignore to CodeQL to skip doc-only commits Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
swift-docc-plugin 1.4.6 is incompatible with Swift 6.1 on Windows (missing Lock, SnippetExtractor, ParsedSymbolGraphArguments types). Windows matrix now covers 6.2 and 6.3 only. WASM/wasm-embedded tooling does not support Swift 6.0 or 6.1 on Ubuntu, so those combinations are excluded from the build matrix. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
swift-docc-plugin 1.4.6 added .gitattributes to mark symlink files, but git on Windows also needs core.symlinks=true to create real symlinks rather than plain-text stubs. Without it, SPM checks out the plugin's shared source files as text, causing 'cannot find Lock in scope' and related errors. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… Ubuntu Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## v0.0.4 #135 +/- ##
==========================================
+ Coverage 78.16% 78.35% +0.19%
==========================================
Files 126 126
Lines 5651 4555 -1096
==========================================
- Hits 4417 3569 -848
+ Misses 1234 986 -248
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
PR ReviewThis PR restores Swift 6.1 to Windows, removes wasm/wasm-embedded excludes from Ubuntu, disables fail-fast on Ubuntu, and includes a comprehensive set of CI improvements. Overall the work is solid. Here are my observations: Bugs / Potential Failures1. Ubuntu wasm matrix has no version exclusions - may fail for Swift 6.0/6.1/6.2 The 2. Windows Swift 6.1 may still be incompatible with swift-docc-plugin 1.4.6 Commit Code Quality3. Both 4. Hardcoded
5. The 6. Both downstream jobs now 7. CodeQL build step comment is misleading The inline Positives
Summary: Items 1 and 2 are the highest-risk issues and could produce CI failures immediately after merge. Items 3-7 are quality improvements worth addressing. The overall direction is good. Generated with Claude Code |
Code ReviewSummaryPR #135 makes substantial CI/CD improvements: restoring Swift 6.1 Windows builds, removing WASM excludes from Ubuntu, disabling fail-fast, adding Android support, CodeQL scanning, and cache cleanup workflows. The architecture is well-thought-out with dynamic matrix generation and cross-platform documentation path detection. Critical Issues1. Version Reference Inconsistency (HIGH)Files: The PR description states upgrading to # Current (problematic)
- uses: brightdigit/swift-build@90-windows-cache-symlinks
# Expected (from PR description)
- uses: brightdigit/swift-build@v1.5.2Using a mutable branch reference instead of a pinned release tag is a CI reliability risk — the branch could be rebased or force-pushed at any time, breaking builds silently. All 5 instances should be updated to Code Quality2. Missing Memoization in
|
Summary
fail-fast: falseto Ubuntu build job🤖 Generated with Claude Code
Perform an AI-assisted review on