-
Notifications
You must be signed in to change notification settings - Fork 6
149 lines (134 loc) · 5.99 KB
/
flare-ui.yml
File metadata and controls
149 lines (134 loc) · 5.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
name: flare-ui
on:
push:
branches:
- main
- dev
pull_request:
paths:
- ".github/**"
- '.swiftlint.yml'
- ".github/workflows/**"
- "Package@swift-5.7.swift"
- "Package@swift-5.8.swift"
- "Package.swift"
- "Source/FlareUI/**"
- "Tests/FlareUITests/**"
permissions:
contents: read
concurrency:
group: flare-ui-${{ github.head_ref || github.ref }}
cancel-in-progress: true
env:
SCHEME_NAME: "FlareUI"
jobs:
test-apple-platforms:
name: ${{ matrix.name }}
runs-on: ${{ matrix.runsOn }}
env:
DEVELOPER_DIR: "/Applications/${{ matrix.xcode }}.app/Contents/Developer"
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
include:
# macOS
- { platform: macOS, name: "macOS 26, Xcode 26.0, Swift 6.2.0", xcode: "Xcode_26.0", runsOn: macOS-26, destination: "platform=macOS", testPlan: "FlareUIUnitTests" }
- { platform: macOS, name: "macOS 14, Xcode 16.0, Swift 6.0.2", xcode: "Xcode_16.1", runsOn: macOS-14, destination: "platform=macOS", testPlan: "FlareUIUnitTests"}
- { platform: macOS, name: "macOS 14, Xcode 15.4, Swift 5.10", xcode: "Xcode_15.4", runsOn: macOS-14, destination: "platform=macOS", testPlan: "FlareUIUnitTests" }
# iOS
- { platform: iOS, name: "iOS 26.0", xcode: "Xcode_26.0.1", runsOn: macOS-26, destination: "OS=26.0.1,name=iPhone 17 Pro", testPlan: "FlareUIUnitTests" }
- { platform: iOS, name: "iOS 18.1", xcode: "Xcode_16.1", runsOn: macOS-14, destination: "OS=18.1,name=iPhone 16 Pro", testPlan: "FlareUIUnitTests" }
- { platform: iOS, name: "iOS 17.4", xcode: "Xcode_15.4", runsOn: macOS-14, destination: "OS=17.4,name=iPhone 15 Pro", testPlan: "FlareUIUnitTests" }
# tvOS
- { platform: tvOS, name: "tvOS 26.0", xcode: "Xcode_26.0.1", runsOn: macOS-26, destination: "OS=26.0,name=Apple TV", testPlan: "FlareUIUnitTests" }
- { platform: tvOS, name: "tvOS 18.1", xcode: "Xcode_16.1", runsOn: macOS-14, destination: "OS=18.1,name=Apple TV", testPlan: "FlareUIUnitTests" }
- { platform: tvOS, name: "tvOS 17.4", xcode: "Xcode_15.4", runsOn: macOS-14, destination: "OS=17.4,name=Apple TV", testPlan: "FlareUIUnitTests" }
# watchOS
- { platform: watchOS, name: "watchOS 26.0", xcode: "Xcode_26.0.1", runsOn: macOS-26, destination: "OS=26.0,name=Apple Watch Ultra 3 (49mm)", testPlan: "FlareUIUnitTests" }
- { platform: watchOS, name: "watchOS 11.1", xcode: "Xcode_16.1", runsOn: macOS-14, destination: "OS=11.1,name=Apple Watch Series 10 (46mm)", testPlan: "FlareUIUnitTests" }
- { platform: watchOS, name: "watchOS 10.5", xcode: "Xcode_15.3", runsOn: macOS-14, destination: "OS=10.5,name=Apple Watch Series 9 (45mm)", testPlan: "FlareUIUnitTests" }
steps:
- name: Checkout code
uses: actions/checkout@v6
- uses: jdx/mise-action@v3
with:
experimental: true
- name: Run tests - ${{ matrix.name }}
uses: ./.github/actions/build_and_test
with:
scheme: ${{ env.SCHEME_NAME }}
destination: ${{ matrix.destination }}
name: ${{ matrix.name }}
test_plan: ${{ matrix.testPlan }}
- name: Upload test coverage to Codecov
uses: space-code/oss-common-actions/.github/actions/upload_test_coverage_report@main
with:
scheme_name: ${{ env.SCHEME_NAME }}
filename: ${{ matrix.name }}
token: ${{ secrets.CODECOV_TOKEN }}
spm-build:
name: ${{ matrix.name }}
runs-on: ${{ matrix.runsOn }}
env:
DEVELOPER_DIR: "/Applications/${{ matrix.xcode }}.app/Contents/Developer"
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
include:
- { name: "macOS 26, SPM 6.2.0", xcode: "Xcode_26.0.1", runsOn: macOS-26 }
- { name: "macOS 14, SPM 6.0.2", xcode: "Xcode_16.1", runsOn: macOS-14 }
- { name: "macOS 14, SPM 5.10.0", xcode: "Xcode_15.3", runsOn: macOS-14 }
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Build with Swift Package Manager - ${{ matrix.name }}
run: swift build -c release --target FlareUI
snapshots:
name: snapshots / ${{ matrix.name }}
runs-on: ${{ matrix.runsOn }}
env:
DEVELOPER_DIR: "/Applications/${{ matrix.xcode }}.app/Contents/Developer"
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
include:
- { platform: iOS, name: "iOS 18.5", xcode: "Xcode_16.4", runsOn: macOS-15, destination: "OS=18.5,name=iPhone 16", testPlan: "SnapshotTests" }
- { platform: tvOS, name: "tvOS 18.5", xcode: "Xcode_16.4", runsOn: macOS-15, destination: "OS=18.5,name=Apple TV", testPlan: "SnapshotTests" }
steps:
- name: Checkout code
uses: actions/checkout@v6
- uses: jdx/mise-action@v3
with:
experimental: true
- name: Run snapshot tests - ${{ matrix.name }}
uses: ./.github/actions/build_and_test
with:
scheme: ${{ env.SCHEME_NAME }}
destination: ${{ matrix.destination }}
name: ${{ matrix.name }}SnapshotTests
test_plan: ${{ matrix.testPlan }}
- name: Upload test coverage to Codecov
uses: space-code/oss-common-actions/.github/actions/upload_test_coverage_report@main
with:
scheme_name: ${{ env.SCHEME_NAME }}
filename: ${{ matrix.name }}SnapshotTests
token: ${{ secrets.CODECOV_TOKEN }}
merge-test-reports:
needs: test-apple-platforms
runs-on: macos-15
steps:
- name: Download artifacts
uses: actions/download-artifact@v7
with:
path: test_output
- name: Merge test results
run: xcrun xcresulttool merge test_output/**/*.xcresult --output-path test_output/final/final.xcresult
- name: Upload merged test results
uses: actions/upload-artifact@v6
with:
name: MergedResult
path: test_output/final
retention-days: 30