Skip to content

Commit 7f368ca

Browse files
Update workflows
1 parent 7d7d7fe commit 7f368ca

File tree

3 files changed

+67
-113
lines changed

3 files changed

+67
-113
lines changed

.github/workflows/ci.yml

Lines changed: 36 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,10 @@ on:
77
branches: [ main ]
88
workflow_dispatch:
99

10-
defaults:
11-
run:
12-
working-directory: ./Recap
13-
1410
jobs:
1511
lint:
1612
name: SwiftLint
17-
runs-on: macos-15
13+
runs-on: macos-latest
1814

1915
steps:
2016
- name: Checkout code
@@ -30,7 +26,7 @@ jobs:
3026
3127
build:
3228
name: Build
33-
runs-on: macos-15
29+
runs-on: macos-latest
3430

3531
steps:
3632
- name: Checkout code
@@ -39,36 +35,39 @@ jobs:
3935
- name: Setup Xcode
4036
uses: maxim-lobanov/setup-xcode@v1
4137
with:
42-
xcode-version: '16.0'
38+
xcode-version: latest-stable
4339

44-
- name: Cache Swift Package Manager
40+
- name: Cache DerivedData
4541
uses: actions/cache@v4
4642
with:
47-
path: |
48-
~/Library/Developer/Xcode/DerivedData
49-
.build
50-
key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }}
43+
path: ~/Library/Developer/Xcode/DerivedData
44+
key: ${{ runner.os }}-deriveddata-${{ hashFiles('Recap/Recap.xcodeproj/project.pbxproj') }}
5145
restore-keys: |
52-
${{ runner.os }}-spm-
53-
54-
- name: Resolve Dependencies
55-
run: |
56-
cd Recap
57-
swift package resolve
46+
${{ runner.os }}-deriveddata-
5847
5948
- name: Build Debug
6049
run: |
6150
cd Recap
62-
swift build -c debug
51+
xcodebuild build \
52+
-project Recap.xcodeproj \
53+
-scheme Recap \
54+
-configuration Debug \
55+
-destination 'platform=macOS' \
56+
| xcbeautify
6357
6458
- name: Build Release
6559
run: |
6660
cd Recap
67-
swift build -c release
61+
xcodebuild build \
62+
-project Recap.xcodeproj \
63+
-scheme Recap \
64+
-configuration Release \
65+
-destination 'platform=macOS' \
66+
| xcbeautify
6867
6968
test:
7069
name: Test
71-
runs-on: macos-15
70+
runs-on: macos-latest
7271
needs: build
7372

7473
steps:
@@ -78,57 +77,43 @@ jobs:
7877
- name: Setup Xcode
7978
uses: maxim-lobanov/setup-xcode@v1
8079
with:
81-
xcode-version: '16.0'
80+
xcode-version: latest-stable
8281

83-
- name: Cache Swift Package Manager
82+
- name: Cache DerivedData
8483
uses: actions/cache@v4
8584
with:
86-
path: |
87-
~/Library/Developer/Xcode/DerivedData
88-
.build
89-
key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }}
85+
path: ~/Library/Developer/Xcode/DerivedData
86+
key: ${{ runner.os }}-deriveddata-${{ hashFiles('Recap/Recap.xcodeproj/project.pbxproj') }}
9087
restore-keys: |
91-
${{ runner.os }}-spm-
88+
${{ runner.os }}-deriveddata-
9289
9390
- name: Run Tests with Coverage
9491
run: |
9592
cd Recap
96-
swift test --enable-code-coverage --parallel
97-
98-
- name: Generate Test Report
99-
run: |
100-
cd Recap
101-
swift test --parallel --xunit-output=test-results.xml || true
93+
xcodebuild test \
94+
-project Recap.xcodeproj \
95+
-scheme Recap \
96+
-destination 'platform=macOS' \
97+
-resultBundlePath TestResults \
98+
-enableCodeCoverage YES \
99+
| xcbeautify
102100
103101
- name: Generate Coverage Report
104102
run: |
105103
cd Recap
106-
xcrun llvm-cov export \
107-
.build/debug/RecapPackageTests.xctest/Contents/MacOS/RecapPackageTests \
108-
-instr-profile .build/debug/codecov/default.profdata \
109-
-format=lcov \
110-
-ignore-filename-regex=".build|Tests|Mocks" \
111-
> coverage.lcov || true
104+
xcrun xccov view --report --json TestResults.xcresult > coverage.json
112105
113106
- name: Upload Test Results
114107
uses: actions/upload-artifact@v4
115108
if: always()
116109
with:
117110
name: test-results
118-
path: Recap/test-results.xml
111+
path: Recap/TestResults.xcresult
119112

120113
- name: Upload Coverage Reports
121114
uses: codecov/codecov-action@v5
122115
with:
123-
file: ./Recap/coverage.lcov
116+
file: Recap/coverage.json
124117
flags: unittests
125118
name: recap-coverage
126-
fail_ci_if_error: false
127-
128-
- name: Publish Test Report
129-
uses: mikepenz/action-junit-report@v4
130-
if: always()
131-
with:
132-
report_paths: 'Recap/test-results.xml'
133-
check_name: 'Test Results'
134-
fail_on_failure: true
119+
fail_ci_if_error: false

.github/workflows/pr-tests.yml

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,6 @@ permissions:
88
contents: read
99
pull-requests: write
1010

11-
defaults:
12-
run:
13-
working-directory: ./Recap
14-
1511
jobs:
1612
test:
1713
name: Test PR
@@ -26,18 +22,23 @@ jobs:
2622
with:
2723
xcode-version: latest-stable
2824

29-
- name: Cache Dependencies
25+
- name: Cache DerivedData
3026
uses: actions/cache@v4
3127
with:
32-
path: |
33-
~/Library/Developer/Xcode/DerivedData
34-
.build
35-
key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }}
28+
path: ~/Library/Developer/Xcode/DerivedData
29+
key: ${{ runner.os }}-deriveddata-${{ hashFiles('Recap/Recap.xcodeproj/project.pbxproj') }}
3630
restore-keys: |
37-
${{ runner.os }}-spm-
31+
${{ runner.os }}-deriveddata-
3832
3933
- name: Build and Test
40-
run: swift test --parallel
34+
run: |
35+
cd Recap
36+
xcodebuild test \
37+
-project Recap.xcodeproj \
38+
-scheme Recap \
39+
-destination 'platform=macOS' \
40+
-resultBundlePath TestResults \
41+
| xcbeautify
4142
4243
- name: Comment PR on Failure
4344
if: failure() && github.event_name == 'pull_request'

.github/workflows/test.yml

Lines changed: 19 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@ on:
77
branches: [ main ]
88
workflow_dispatch:
99

10-
defaults:
11-
run:
12-
working-directory: ./Recap
13-
1410
jobs:
1511
test:
1612
name: Run Tests
@@ -25,69 +21,41 @@ jobs:
2521
with:
2622
xcode-version: latest-stable
2723

28-
- name: Cache Swift Package Manager
24+
- name: Cache DerivedData
2925
uses: actions/cache@v4
3026
with:
31-
path: |
32-
~/Library/Developer/Xcode/DerivedData
33-
.build
34-
key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }}
27+
path: ~/Library/Developer/Xcode/DerivedData
28+
key: ${{ runner.os }}-deriveddata-${{ hashFiles('Recap/Recap.xcodeproj/project.pbxproj') }}
3529
restore-keys: |
36-
${{ runner.os }}-spm-
37-
38-
- name: Resolve Dependencies
39-
run: swift package resolve
40-
41-
- name: Build for Testing
42-
run: swift build --build-tests
30+
${{ runner.os }}-deriveddata-
4331
44-
- name: Run Tests
45-
run: swift test --parallel --xunit-output=test-results.xml
32+
- name: Build and Test
33+
run: |
34+
cd Recap
35+
xcodebuild test \
36+
-project Recap.xcodeproj \
37+
-scheme Recap \
38+
-destination 'platform=macOS' \
39+
-resultBundlePath TestResults \
40+
-enableCodeCoverage YES \
41+
| xcbeautify
4642
4743
- name: Upload Test Results
4844
uses: actions/upload-artifact@v4
4945
if: always()
5046
with:
5147
name: test-results
52-
path: Recap/test-results.xml
53-
54-
- name: Publish Test Report
55-
uses: mikepenz/action-junit-report@v4
56-
if: always()
57-
with:
58-
report_paths: 'Recap/test-results.xml'
59-
check_name: 'Test Results'
60-
fail_on_failure: true
61-
62-
code-coverage:
63-
name: Code Coverage
64-
runs-on: macos-latest
65-
66-
steps:
67-
- name: Checkout code
68-
uses: actions/checkout@v4
69-
70-
- name: Setup Xcode
71-
uses: maxim-lobanov/setup-xcode@v1
72-
with:
73-
xcode-version: latest-stable
48+
path: Recap/TestResults.xcresult
7449

7550
- name: Generate Coverage Report
76-
run: swift test --enable-code-coverage
77-
78-
- name: Convert Coverage to LCOV
7951
run: |
80-
xcrun llvm-cov export \
81-
.build/debug/RecapPackageTests.xctest/Contents/MacOS/RecapPackageTests \
82-
-instr-profile .build/debug/codecov/default.profdata \
83-
-format=lcov \
84-
-ignore-filename-regex=".build|Tests" \
85-
> coverage.lcov
52+
cd Recap
53+
xcrun xccov view --report --json TestResults.xcresult > coverage.json
8654
87-
- name: Upload Coverage to Codecov
55+
- name: Upload Coverage
8856
uses: codecov/codecov-action@v5
8957
with:
90-
file: ./Recap/coverage.lcov
58+
file: Recap/coverage.json
9159
flags: unittests
9260
name: recap-coverage
9361
fail_ci_if_error: false

0 commit comments

Comments
 (0)