7.0.3 #32
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
# Comprehensive CI workflow that includes builds, tests, and validations | |
on: | |
push: | |
branches: [ main, master, develop ] | |
pull_request: | |
branches: [ main, master, develop ] | |
# Cancel any in-progress workflow runs for the same branch | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
DEVELOPER_DIR: /Applications/Xcode.app/Contents/Developer | |
jobs: | |
# Swift Package Manager Build | |
spm-build: | |
name: SPM Build | |
runs-on: macos-latest | |
strategy: | |
matrix: | |
platform: [iOS, macOS, tvOS, watchOS, visionOS] | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Setup Xcode | |
uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: latest | |
- name: Build with SPM | |
run: | | |
case "${{ matrix.platform }}" in | |
iOS) | |
SDK_PATH=$(xcrun --sdk iphonesimulator --show-sdk-path) | |
swift build \ | |
-Xcc "-isysroot" -Xcc "$SDK_PATH" \ | |
-Xswiftc "-sdk" -Xswiftc "$SDK_PATH" \ | |
-Xswiftc "-target" -Xswiftc "arm64-apple-ios13.0-simulator" | |
;; | |
macOS) | |
swift build | |
;; | |
tvOS) | |
SDK_PATH=$(xcrun --sdk appletvsimulator --show-sdk-path) | |
swift build \ | |
-Xcc "-isysroot" -Xcc "$SDK_PATH" \ | |
-Xswiftc "-sdk" -Xswiftc "$SDK_PATH" \ | |
-Xswiftc "-target" -Xswiftc "arm64-apple-tvos13.0-simulator" | |
;; | |
watchOS) | |
SDK_PATH=$(xcrun --sdk watchsimulator --show-sdk-path) | |
swift build \ | |
-Xcc "-isysroot" -Xcc "$SDK_PATH" \ | |
-Xswiftc "-sdk" -Xswiftc "$SDK_PATH" \ | |
-Xswiftc "-target" -Xswiftc "arm64-apple-watchos6.0-simulator" | |
;; | |
visionOS) | |
SDK_PATH=$(xcrun --sdk xrsimulator --show-sdk-path) | |
swift build \ | |
-Xcc "-isysroot" -Xcc "$SDK_PATH" \ | |
-Xswiftc "-sdk" -Xswiftc "$SDK_PATH" \ | |
-Xswiftc "-target" -Xswiftc "arm64-apple-xros1.0-simulator" | |
;; | |
esac | |
# Xcode Build Test | |
xcode-build: | |
name: Xcode Build | |
runs-on: macos-latest | |
strategy: | |
matrix: | |
destination: | |
- 'platform=iOS Simulator,name=iPhone 15,OS=latest' | |
- 'platform=macOS' | |
- 'platform=tvOS Simulator,name=Apple TV,OS=latest' | |
- 'platform=watchOS Simulator,name=Apple Watch Series 9 (45mm),OS=latest' | |
- 'platform=visionOS Simulator,name=Apple Vision Pro,OS=latest' | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Setup Xcode | |
uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: latest | |
- name: Build with Xcode | |
run: | | |
xcodebuild clean build \ | |
-workspace EFQRCode.xcworkspace \ | |
-scheme "${{ contains(matrix.destination, 'iOS') && 'iOS Example' || contains(matrix.destination, 'macOS') && 'macOS Example' || contains(matrix.destination, 'tvOS') && 'tvOS Example' || contains(matrix.destination, 'watchOS') && 'watchOS Example' || 'iOS Example' }}" \ | |
-destination "${{ matrix.destination }}" \ | |
CODE_SIGN_IDENTITY="" \ | |
CODE_SIGNING_REQUIRED=NO \ | |
ONLY_ACTIVE_ARCH=NO | |
# Final Status Check | |
status-check: | |
name: Status Check | |
runs-on: macos-latest | |
needs: [spm-build, xcode-build] | |
if: always() | |
steps: | |
- name: Check Results | |
run: | | |
if [[ "${{ needs.spm-build.result }}" != "success" ]] || [[ "${{ needs.xcode-build.result }}" != "success" ]]; then | |
echo "❌ Build checks failed - PR will be blocked" | |
exit 1 | |
fi | |
echo "✅ All checks passed successfully!" |