Skip to content

Commit 174bbca

Browse files
committed
fix: update CI pipeline for macos-15 and Xcode 16.2
- Switch runners from macos-14 to macos-15 - Update Xcode from 15.4 to 16.2 - Update simulator destinations to iOS 18.2 and watchOS 11.2 - Add set -o pipefail to prevent xcpretty from swallowing errors - Enable code coverage collection with -enableCodeCoverage YES
1 parent 3846a1c commit 174bbca

1 file changed

Lines changed: 12 additions & 10 deletions

File tree

.github/workflows/ci.yml

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@ concurrency:
1515
cancel-in-progress: true
1616

1717
env:
18-
DEVELOPER_DIR: /Applications/Xcode_15.4.app/Contents/Developer
18+
DEVELOPER_DIR: /Applications/Xcode_16.2.app/Contents/Developer
1919
XCODEGEN_VERSION: "2.38.0"
2020

2121
jobs:
2222
# Gate 1: Swift lint and format check
2323
lint:
2424
name: SwiftLint
25-
runs-on: macos-14
25+
runs-on: macos-15
2626
steps:
2727
- uses: actions/checkout@v4
2828
- name: Install SwiftLint
@@ -35,15 +35,15 @@ jobs:
3535
# Gate 2: Build iOS and watchOS targets
3636
build:
3737
name: Build (${{ matrix.scheme }})
38-
runs-on: macos-14
38+
runs-on: macos-15
3939
needs: lint
4040
strategy:
4141
matrix:
4242
include:
4343
- scheme: Thump
44-
destination: "platform=iOS Simulator,name=iPhone 15 Pro,OS=17.5"
44+
destination: "platform=iOS Simulator,name=iPhone 16 Pro,OS=18.2"
4545
- scheme: ThumpWatch
46-
destination: "platform=watchOS Simulator,name=Apple Watch Series 9 (45mm),OS=10.5"
46+
destination: "platform=watchOS Simulator,name=Apple Watch Series 10 (46mm),OS=11.2"
4747
steps:
4848
- uses: actions/checkout@v4
4949
- name: Install XcodeGen
@@ -54,6 +54,7 @@ jobs:
5454
xcodegen generate
5555
- name: Build
5656
run: |
57+
set -o pipefail
5758
cd apps/HeartCoach
5859
xcodebuild build \
5960
-project Thump.xcodeproj \
@@ -67,7 +68,7 @@ jobs:
6768
# Gate 3: Run unit tests
6869
test:
6970
name: Unit Tests
70-
runs-on: macos-14
71+
runs-on: macos-15
7172
needs: build
7273
steps:
7374
- uses: actions/checkout@v4
@@ -79,11 +80,13 @@ jobs:
7980
xcodegen generate
8081
- name: Run Tests
8182
run: |
83+
set -o pipefail
8284
cd apps/HeartCoach
8385
xcodebuild test \
8486
-project Thump.xcodeproj \
8587
-scheme Thump \
86-
-destination "platform=iOS Simulator,name=iPhone 15 Pro,OS=17.5" \
88+
-destination "platform=iOS Simulator,name=iPhone 16 Pro,OS=18.2" \
89+
-enableCodeCoverage YES \
8790
-resultBundlePath TestResults.xcresult \
8891
CODE_SIGN_IDENTITY="" \
8992
CODE_SIGNING_REQUIRED=NO \
@@ -93,9 +96,8 @@ jobs:
9396
run: |
9497
cd apps/HeartCoach
9598
xcrun xccov view --report --json TestResults.xcresult > coverage_report.json
96-
# Print summary to CI log
97-
echo "## Code Coverage Summary" >> $GITHUB_STEP_SUMMARY
98-
xcrun xccov view --report TestResults.xcresult | head -30 >> $GITHUB_STEP_SUMMARY
99+
echo "## Code Coverage Summary" >> "$GITHUB_STEP_SUMMARY"
100+
xcrun xccov view --report TestResults.xcresult | head -30 >> "$GITHUB_STEP_SUMMARY"
99101
- name: Upload Test Results
100102
if: always()
101103
uses: actions/upload-artifact@v4

0 commit comments

Comments
 (0)