Skip to content

Commit 972e43e

Browse files
authored
CI Updates (#3962)
* Change test results parser and split reusable workflow into build and test. * Don't show summary if all tests passed.
1 parent ee70c88 commit 972e43e

File tree

4 files changed

+79
-35
lines changed

4 files changed

+79
-35
lines changed

.github/workflows/nightly.yaml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
xcode: ^16
2121
- ios: ^17
2222
xcode: ^16
23-
uses: ./.github/workflows/reusable-workflow.yaml
23+
uses: ./.github/workflows/reusable-test-workflow.yaml
2424
with:
2525
lib: ${{ matrix.lib }}
2626
ios: ${{ matrix.ios }}
@@ -40,10 +40,9 @@ jobs:
4040
xcode: ^16
4141
- ios: ^17
4242
xcode: ^16
43-
uses: ./.github/workflows/reusable-workflow.yaml
43+
uses: ./.github/workflows/reusable-build-workflow.yaml
4444
with:
45-
lib: ${{ matrix.app }}
45+
app: ${{ matrix.app }}
4646
ios: ${{ matrix.ios }}
4747
xcode: ${{ matrix.xcode }}
48-
build_only: true
4948
secrets: inherit

.github/workflows/pr.yaml

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -108,12 +108,11 @@ jobs:
108108
xcode: ^26
109109
- ios: ^18
110110
xcode: ^16
111-
uses: ./.github/workflows/reusable-workflow.yaml
111+
uses: ./.github/workflows/reusable-test-workflow.yaml
112112
with:
113113
lib: ${{ matrix.lib }}
114114
ios: ${{ matrix.ios }}
115115
xcode: ${{ matrix.xcode }}
116-
is_pr: true
117116
secrets: inherit
118117

119118
native-samples-pr:
@@ -127,11 +126,9 @@ jobs:
127126
xcode: ^26
128127
- ios: ^18
129128
xcode: ^16
130-
uses: ./.github/workflows/reusable-workflow.yaml
129+
uses: ./.github/workflows/reusable-build-workflow.yaml
131130
with:
132-
lib: ${{ matrix.app }}
131+
app: ${{ matrix.app }}
133132
ios: ${{ matrix.ios }}
134133
xcode: ${{ matrix.xcode }}
135-
is_pr: true
136-
build_only: true
137134
secrets: inherit
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
on:
2+
workflow_call:
3+
inputs:
4+
app:
5+
required: true
6+
type: string
7+
ios:
8+
default: "^18"
9+
required: false
10+
type: string
11+
xcode:
12+
default: "^16"
13+
required: false
14+
type: string
15+
macos:
16+
default: macos-latest
17+
required: false
18+
type: string
19+
20+
jobs:
21+
build-sample-app:
22+
runs-on: ${{ inputs.macos }}
23+
steps:
24+
- uses: actions/checkout@v4
25+
if: github.event_name == 'pull_request'
26+
with:
27+
ref: ${{ github.event.pull_request.head.sha }}
28+
- uses: actions/checkout@v4
29+
if: github.event_name != 'pull_request'
30+
with:
31+
ref: ${{ github.head_ref }}
32+
- name: Install Dependencies
33+
run: ./install.sh
34+
- name: Install iOS 17 runtime if needed
35+
if: ${{ inputs.ios == '^17' }}
36+
run: xcodes runtimes install "iOS 17.5"
37+
- uses: mxcl/xcodebuild@v3
38+
with:
39+
xcode: ${{ inputs.xcode }}
40+
platform: iOS
41+
platform-version: ${{ inputs.ios }}
42+
workspace: SalesforceMobileSDK.xcworkspace
43+
scheme: ${{ inputs.app }}
44+
action: 'build'
45+
verbosity: xcbeautify

.github/workflows/reusable-workflow.yaml renamed to .github/workflows/reusable-test-workflow.yaml

Lines changed: 28 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,17 @@ on:
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

2620
jobs:
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

Comments
 (0)