Skip to content

Commit dfb1118

Browse files
Generate code coverage report in correct format (#4272)
* Generate code coverage report in correct format. * Add codecov steps to spm test host job, run codecov generation only on SPM debug job. * Find object file by name. * Add codecov check and comment. * Don't require changes.
1 parent 25678d8 commit dfb1118

File tree

2 files changed

+46
-4
lines changed

2 files changed

+46
-4
lines changed

.circleci/config.yml

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,7 @@ jobs:
316316
default: true
317317
codecoverage:
318318
type: boolean
319-
default: true
319+
default: false
320320
verify_localization:
321321
type: boolean
322322
default: true
@@ -373,15 +373,24 @@ jobs:
373373
- run:
374374
name: MapboxNavigation-Package
375375
command: xcodebuild -sdk iphonesimulator -destination 'platform=iOS Simulator,OS=<< parameters.iOS >>,name=<< parameters.device >>' -scheme MapboxNavigation-Package -configuration << parameters.configuration >> build <<# parameters.test >>test <</ parameters.test >> <<# parameters.codecoverage >>-enableCodeCoverage YES<</ parameters.codecoverage >> ENABLE_TESTABILITY=YES
376+
# FIXME: SPM test host is currently disabled, but we should run tests on the SPM test host job. When it is reenabled, delete this section that generates the code coverage report.
376377
- when:
377378
condition: << parameters.codecoverage >>
378379
steps:
380+
- run:
381+
name: Generate code coverage report
382+
command: |
383+
xcrun llvm-cov export -arch $(uname -m) -format="lcov" \
384+
-instr-profile=$(find "${HOME}/Library/Developer/Xcode/DerivedData" -name '*.profdata' | head -n 1) \
385+
$(find "${HOME}/Library/Developer/Xcode/DerivedData" -name "MapboxNavigation.o") > coverage.lcov
379386
- run:
380387
name: Send code coverage
381388
command: |
382389
curl -Os https://uploader.codecov.io/latest/macos/codecov
383390
chmod +x codecov
384391
./codecov
392+
- store_artifacts:
393+
path: coverage.lcov
385394
- notify-build-finished
386395

387396
build-example:
@@ -463,6 +472,9 @@ jobs:
463472
notify_success:
464473
type: boolean
465474
default: false
475+
codecoverage:
476+
type: boolean
477+
default: true
466478
macos:
467479
xcode: << parameters.xcode >>
468480
resource_class: macos.x86.metal.gen1
@@ -475,7 +487,24 @@ jobs:
475487
- *add-github-to-known-hosts
476488
- run:
477489
name: Build test host application and execute tests
478-
command: xcodebuild -project MapboxNavigation-SPM.xcodeproj -scheme MapboxNavigationTestHost -sdk iphonesimulator -configuration Release -destination "platform=iOS Simulator,OS=<< parameters.iOS >>,name=<< parameters.device >>" clean build test -enableCodeCoverage YES ENABLE_TESTABILITY=YES
490+
command: xcodebuild -project MapboxNavigation-SPM.xcodeproj -scheme MapboxNavigationTestHost -sdk iphonesimulator -configuration Release -destination "platform=iOS Simulator,OS=<< parameters.iOS >>,name=<< parameters.device >>" clean build test <<# parameters.codecoverage >>-enableCodeCoverage YES<</ parameters.codecoverage >> ENABLE_TESTABILITY=YES
491+
- when:
492+
condition: << parameters.codecoverage >>
493+
steps:
494+
- run:
495+
name: Generate code coverage report
496+
command: |
497+
xcrun llvm-cov export -arch $(uname -m) -format="lcov" \
498+
-instr-profile=$(find "${HOME}/Library/Developer/Xcode/DerivedData" -name '*.profdata' | head -n 1) \
499+
$(find build -name "MapboxNavigation.o") > coverage.lcov
500+
- run:
501+
name: Send code coverage
502+
command: |
503+
curl -Os https://uploader.codecov.io/latest/macos/codecov
504+
chmod +x codecov
505+
./codecov
506+
- store_artifacts:
507+
path: coverage.lcov
479508
- notify-build-finished
480509

481510
get-api-log-job:
@@ -755,20 +784,22 @@ workflows:
755784
xcode: "13.2.1"
756785
iOS: "15.2"
757786
device: "iPhone 13 Pro Max"
787+
codecoverage: false
758788
context: Slack Orb
759789
- build-job:
760790
name: "Xcode_13.2.1_iOS_15.2_SPM_Debug"
761791
xcode: "13.2.1"
762792
iOS: "15.2"
763793
device: "iPhone 13 Pro Max"
764794
spm: true
765-
codecoverage: false
795+
codecoverage: true
766796
context: Slack Orb
767797
- build-job:
768798
name: "Xcode_13.2.1_iOS_15.2_Release"
769799
xcode: "13.2.1"
770800
iOS: "15.2"
771801
device: "iPhone 13 Pro Max"
802+
codecoverage: false
772803
context: Slack Orb
773804
configuration: "Release"
774805
- build-job:

codecov.yml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
codecov:
2+
require_ci_to_pass: false
3+
notify:
4+
wait_for_ci: false
5+
16
ignore:
27
- "Example"
38
- "MapboxNavigationTests"
@@ -11,4 +16,10 @@ coverage:
1116
default:
1217
threshold: 1%
1318
patch: false
14-
19+
20+
comment:
21+
layout: "reach, diff, flags, files"
22+
behavior: default
23+
require_changes: false
24+
require_base: no
25+
require_head: yes

0 commit comments

Comments
 (0)