Skip to content

Add CI, fix SPM header imports and macOS tests, prepare 3.0.8 - #361

Merged
alexanderdibenedetto merged 5 commits into
masterfrom
ci-and-3.0.8-prep
Oct 14, 2026
Merged

alexanderdibenedetto merged 5 commits into
masterfrom
ci-and-3.0.8-prep

Conversation

@alexanderdibenedetto

Copy link
Copy Markdown
Contributor
  • GitHub Actions on PRs to master: iOS/macOS/tvOS tests, watchOS and static library builds, Swift package validation; steps live in scripts/
  • Fall back to quoted imports in public headers under SwiftPM; the framework-style imports from Address issue #354 and update project settings to recommended ones per Xcode 26 #355 broke SPM builds
  • Guard UIApplication mocks so the macOS test target compiles
  • Set TrustKitVersion and the podspec to 3.0.8 (reports were sending 3.0.0)

Alexander DiBenedetto added 4 commits October 14, 2026 11:20
- GitHub Actions on PRs to master: iOS/macOS/tvOS tests, watchOS and static
  library builds, Swift package validation; steps live in scripts/
- Fall back to quoted imports in public headers under SwiftPM; the
  framework-style imports from #355 broke SPM builds
- Guard UIApplication mocks so the macOS test target compiles
- Set TrustKitVersion and the podspec to 3.0.8 (reports were sending 3.0.0)
…ramework to releases

- Platform names distinguish device and simulator (ios vs ios-simulator, etc.)
- Select simulators by name on the runner's newest runtime instead of a Python lookup
- Build a static XCFramework of all seven slices on PRs; release.yml attaches
  it to published releases as TrustKit-static.zip
- Drop build.sh and the TrustKit_Static CI build

Copilot AI 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.

🟢 Approval recommended

The changes are internally consistent and the updated CI validates the key platform, packaging, and SwiftPM paths.

0 open findings

What changed in this PR

Adds GitHub Actions CI/release automation, restores SwiftPM-compatible imports and macOS test compilation, and prepares version 3.0.8.

Changes:

  • Adds multi-platform testing, package validation, and XCFramework release scripts.
  • Fixes public-header imports and platform-specific test mocks.
  • Aligns framework, runtime, and CocoaPods versions to 3.0.8.
File Description
.github/​workflows/​ci.yml Adds multi-platform CI jobs.
.github/​workflows/​release.yml Publishes the static XCFramework.
.gitignore Ignores CI outputs.
README.md Updates the build badge.
TrustKit.podspec Sets version 3.0.8.
TrustKit.xcodeproj/​project.pbxproj Sets the marketing version.
TrustKit/​Framework/​Info.plist Uses the marketing version.
TrustKit/​TSKTrustKitConfig.m Updates the reported version.
TrustKit/​public/​TSKPinningValidator.h Adds SwiftPM import fallback.
TrustKit/​public/​TSKPinningValidatorCallback.h Adds SwiftPM import fallbacks.
TrustKit/​public/​TSKPinningValidatorResult.h Adds SwiftPM import fallback.
TrustKit/​public/​TrustKit.h Adds umbrella-header import fallbacks.
TrustKitTests/​TSKEndToEndNSURLSessionTests.m Extends network-test timeouts.
TrustKitTests/​TSKEndToEndSwizzlingTests.m Extends the network-test timeout.
TrustKitTests/​TSKPinningValidatorTests.m Guards UIKit mocks on macOS.
TrustKitTests/​TSKPublicKeyAlgorithmTests.m Guards UIKit-dependent tests.
scripts/​build_xcframework.sh Builds the static XCFramework.
scripts/​lib.sh Provides shared build helpers.
scripts/​run_unit_tests.sh Runs platform-specific tests.
scripts/​validate_swift_package.sh Validates SwiftPM consumers.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

EthanArbuckle
EthanArbuckle previously approved these changes Oct 14, 2026

@claude claude 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.

LGTM — straightforward CI/CD migration from Bitrise to GitHub Actions along with a version bump and an SPM header-import fix.

What was reviewed:

  • New GitHub Actions workflows and scripts/*.sh wrappers around xcodebuild (unit tests, XCFramework build/release, SPM validation)
  • Conditional angle-bracket vs. quoted imports in the public headers (TrustKit.h, TSKPinningValidator*.h) for framework vs. SPM distribution
  • Test timeout increases (5s→30s) and new TARGET_OS_IPHONE guards around UIApplication/OCMock usage for macOS/tvOS test targets
  • Checked validate_swift_package.sh's generated consumer Package.swift missing a platforms: array — ruled out as a blocker since it was already flagged and investigated separately
Extended reasoning...

The change is a CI/CD migration (Bitrise→GitHub Actions) plus supporting shell scripts, a version bump to 3.0.8, a mechanical conditional-import fallback in public headers for SPM support, and test-only guards/timeout tweaks — no auth, crypto, or pinning-validation logic is touched. No CODEOWNERS file exists, no prior reviewer objections are outstanding in the timeline, and the bug-hunting pass reported zero findings; the one candidate issue it considered (missing platforms array in the generated SPM consumer manifest) was investigated and ruled out. Given the mechanical, self-contained nature of the changes and lack of any security-sensitive surface, this is safe to approve without requiring a human look.

Without an OS, xcodebuild picks the newest installed runtime, so a runner
image with an extra runtime fails to find the named simulator. Keep
unformatted xcodebuild lines so destination errors show what was available.
@alexanderdibenedetto
alexanderdibenedetto merged commit 7f58c97 into master Oct 14, 2026
5 checks passed
@alexanderdibenedetto
alexanderdibenedetto deleted the ci-and-3.0.8-prep branch October 14, 2026 23:30
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.

7 participants