1616 default : macos-latest
1717 required : false
1818 type : string
19- is_pr :
20- type : boolean
21- default : false
22- build_only :
23- type : boolean
24- default : false
2519
2620jobs :
2721 test-ios :
2822 runs-on : ${{ inputs.macos }}
2923 steps :
3024 - uses : actions/checkout@v4
31- if : ${{ inputs.is_pr }}
25+ if : github.event_name == 'pull_request'
3226 with :
3327 ref : ${{ github.event.pull_request.head.sha }}
3428 - uses : actions/checkout@v4
35- if : ${{ ! inputs.is_pr }}
29+ if : github.event_name != 'pull_request'
3630 with :
3731 ref : ${{ github.head_ref }}
3832 - name : Install Dependencies
@@ -45,33 +39,42 @@ jobs:
4539 if : ${{ inputs.ios == '^17' }}
4640 run : xcodes runtimes install "iOS 17.5"
4741 - uses : mxcl/xcodebuild@v3
42+ id : xcodebuild
4843 with :
4944 xcode : ${{ inputs.xcode }}
5045 platform : iOS
5146 platform-version : ${{ inputs.ios }}
5247 workspace : SalesforceMobileSDK.xcworkspace
5348 scheme : ${{ inputs.lib }}
54- action : ${{ inputs.build_only && 'build' || 'test' }}
55- code-coverage : ${{ ! inputs.build_only }}
49+ code-coverage : true
5650 verbosity : xcbeautify
57- -
uses :
slidoapp/[email protected] 58- with :
59- path : test.xcresult
60- title : " ${{ inputs.lib }} iOS ${{ inputs.ios }}"
61- show-code-coverage : false
62- upload-bundles : false
63- show-passed-tests : false
64- # xcresulttool currently fails for iOS 26
65- if : ${{ ! inputs.build_only && (success() || failure()) && inputs.ios != '^26' }}
66- - name : Upload artifact
67- uses : actions/upload-artifact@v4
51+ - name : Parse test results
52+ if : success() || failure()
53+ run : |
54+ brew install xcresultparser
55+ xcresultparser -o junit test.xcresult > test-results-${{ inputs.lib }}-ios${{ inputs.ios }}.xml
56+ - name : Test Report
57+ uses : mikepenz/action-junit-report@v5
58+ if : success() || failure()
6859 with :
69- name : test-results-${{ inputs.lib }}-ios${{ inputs.ios }}
70- path : test.xcresult
71- if : ${{ ! inputs.build_only && (success() || failure()) }}
60+ check_name : ${{ inputs.lib }} iOS ${{ inputs.ios }} Test Results
61+ job_name : ${{ inputs.lib }} iOS ${{ inputs.ios }} Test Results
62+ require_tests : true
63+ include_empty_in_summary : false
64+ simplified_summary : true
65+ detailed_summary : true
66+ comment : true
67+ job_summary : ${{ steps.xcodebuild.outcome == 'failure' }}
68+ report_paths : ' test-results-${{ inputs.lib }}-ios${{ inputs.ios }}.xml'
7269 - uses : codecov/codecov-action@v4
70+ if : success() || failure()
7371 with :
7472 flags : ${{ inputs.lib }}
7573 env :
7674 CODECOV_TOKEN : ${{ secrets.CODECOV_TOKEN }}
77- if : ${{ ! inputs.build_only && (success() || failure()) }}
75+ - name : Upload test results artifact
76+ if : success() || failure()
77+ uses : actions/upload-artifact@v4
78+ with :
79+ name : test-results-${{ inputs.lib }}-ios${{ inputs.ios }}
80+ path : test-results-${{ inputs.lib }}-ios${{ inputs.ios }}.xml
0 commit comments