1919 is_pr :
2020 type : boolean
2121 default : false
22+ secrets :
23+ TEST_CREDENTIALS :
24+ required : true
25+ CODECOV_TOKEN :
26+ required : true
27+
28+ permissions :
29+ contents : read
30+ pull-requests : write
2231
2332jobs :
2433 test-ios :
2534 runs-on : ${{ inputs.macos }}
2635 steps :
27- - uses : actions/checkout@v4
36+ - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
2837 if : ${{ inputs.is_pr }}
2938 with :
39+ persist-credentials : false
3040 ref : ${{ github.event.pull_request.head.sha }}
31- - uses : actions/checkout@v4
41+ - uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
3242 if : ${{ ! inputs.is_pr }}
3343 with :
44+ persist-credentials : false
3445 ref : ${{ github.head_ref }}
3546 - name : Install Dependencies
3647 env :
3748 TEST_CREDENTIALS : ${{ secrets.TEST_CREDENTIALS }}
3849 run : |
3950 ./install.sh
4051 echo $TEST_CREDENTIALS > ./shared/test/test_credentials.json
41- - uses : mxcl/xcodebuild@v3
52+ - uses : mxcl/xcodebuild@d3ee9b419c1be9a988086c58fe0988f32d99cfc5 # v3.6.0
4253 id : xcodebuild
4354 with :
4455 xcode : ${{ inputs.xcode }}
@@ -49,13 +60,25 @@ jobs:
4960 action : test
5061 code-coverage : true
5162 verbosity : xcbeautify
63+ - name : Archive xcodebuild logs on build failure
64+ if : failure() && steps.xcodebuild.outcome == 'failure'
65+ uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
66+ with :
67+ name : xcodebuild-logs-${{ inputs.lib }}-ios${{ inputs.ios }}
68+ path : |
69+ ~/Library/Developer/Xcode/DerivedData/**/Logs/Build/*.xcactivitylog
70+ if-no-files-found : ignore
71+ retention-days : 14
5272 - name : Parse test results
5373 if : success() || failure()
74+ env :
75+ LIB : ${{ inputs.lib }}
76+ IOS : ${{ inputs.ios }}
5477 run : |
5578 brew install xcresultparser
56- xcresultparser -o junit test.xcresult > test-results-${{ inputs.lib }} -ios${{ inputs.ios }} .xml
79+ xcresultparser -o junit test.xcresult > " test-results-${LIB} -ios${IOS} .xml"
5780 - name : Test Report
58- uses : mikepenz/action-junit-report@v6
81+ uses : mikepenz/action-junit-report@3a81627bfac62268172037048872e8ebd4207e6d # v6.4.1
5982 if : success() || failure()
6083 with :
6184 check_name : ${{ inputs.lib }} iOS ${{ inputs.ios }} Test Results
@@ -67,15 +90,15 @@ jobs:
6790 comment : true
6891 job_summary : ${{ steps.xcodebuild.outcome == 'failure' }}
6992 report_paths : ' test-results-${{ inputs.lib }}-ios${{ inputs.ios }}.xml'
70- - uses : codecov/codecov-action@v4
93+ - uses : codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 # v4.6.0
7194 if : success() || failure()
7295 with :
7396 flags : ${{ inputs.lib }}
7497 env :
7598 CODECOV_TOKEN : ${{ secrets.CODECOV_TOKEN }}
7699 - name : Upload test results artifact
77100 if : success() || failure()
78- uses : actions/upload-artifact@v4
101+ uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
79102 with :
80103 name : test-results-${{ inputs.lib }}-ios${{ inputs.ios }}
81104 path : test-results-${{ inputs.lib }}-ios${{ inputs.ios }}.xml
0 commit comments