-
Notifications
You must be signed in to change notification settings - Fork 352
169 lines (151 loc) · 4.83 KB
/
ci.yml
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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
name: CI
on:
push:
branches:
- main
pull_request:
branches:
- "**"
schedule:
- cron: "3 3 * * 2" # 3:03 AM, every Tuesday
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
lint-podspec:
name: Lint Podspec
runs-on: macos-latest
steps:
- name: Git Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0 # required to be able to find Git tags
- name: Lint Podspec
run: |
set -eo pipefail
export LIB_VERSION=$(git describe --tags `git rev-list --tags --max-count=1`)
pod lib lint SwiftUIIntrospect.podspec --allow-warnings
ci:
name: ${{ matrix.platform[0] }} ${{ matrix.platform[1] }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- platform: [iOS, 13]
runtime: iOS 13.7
os: macos-12
xcode: 14.2
install: true
- platform: [iOS, 14]
runtime: iOS 14.5
os: macos-13
xcode: 14.3.1
install: true
- platform: [iOS, 15]
runtime: iOS 15.5
os: macos-13
xcode: 15.0.1
install: true
- platform: [iOS, 16]
runtime: iOS 16.4
os: macos-13
xcode: 14.3.1
- platform: [iOS, 17]
runtime: iOS 17.5
os: macos-14
xcode: 15.4
- platform: [tvOS, 13]
runtime: tvOS 13.4
os: macos-12
xcode: 14.2
install: true
- platform: [tvOS, 14]
runtime: tvOS 14.5
os: macos-13
xcode: 14.3.1
install: true
- platform: [tvOS, 15]
runtime: tvOS 15.4
os: macos-13
xcode: 15.0.1
install: true
- platform: [tvOS, 16]
runtime: tvOS 16.4
os: macos-13
xcode: 15.0.1
- platform: [tvOS, 17]
runtime: tvOS 17.5
os: macos-14
xcode: 15.4
- platform: [watchOS, 7]
runtime: watchOS 7.4
os: macos-13
xcode: 14.3.1
install: true
- platform: [watchOS, 8]
runtime: watchOS 8.5
os: macos-13
xcode: 15.0.1
install: true
- platform: [watchOS, 9]
runtime: watchOS 9.4
os: macos-13
xcode: 14.3.1
- platform: [watchOS, 10]
runtime: watchOS 10.5
os: macos-14
xcode: 15.4
- platform: [macOS, 12]
runtime: macOS 12
os: macos-12
xcode: 14.2
- platform: [macOS, 13]
runtime: macOS 13
os: macos-13
xcode: 15.0.1
- platform: [macOS, 14]
runtime: macOS 14
os: macos-14
xcode: 15.4
# FIXME: this currently hangs on CI
# - platform: [visionos, 1]
# runtime: visionOS 1.0-beta2
# os: macos-13
# xcode: 15.0
# install: true
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Set up pkgx environment
uses: pkgxdev/setup@v1
with:
+: fastlane xcodes
- name: Set environment variables
run: echo "SKIP_SLOW_FASTLANE_WARNING=1" >> $GITHUB_ENV
- name: Select Xcode version
run: sudo xcodes select ${{ matrix.xcode }}
- if: ${{ matrix.install }}
name: Install Required Runtime (${{ matrix.runtime }})
uses: nick-fields/retry@v2
with:
timeout_minutes: 15
max_attempts: 3
command: sudo xcodes runtimes install '${{ matrix.runtime }}'
- if: true
name: "[Debug] List Available Runtimes, Simulators, and Destinations"
run: |
xcrun simctl list
xcodebuild -scheme "SwiftUIIntrospect" -showdestinations
- if: ${{ matrix.platform[0] != 'watchOS' }}
name: Build Showcase
run: fastlane build platform:${{ matrix.platform[0] }} version:${{ matrix.platform[1] }} scheme:Showcase
- if: ${{ matrix.platform[0] == 'watchOS' }}
name: Build Library
run: fastlane build platform:${{ matrix.platform[0] }} version:${{ matrix.platform[1] }} scheme:SwiftUIIntrospect
- if: ${{ matrix.platform[0] != 'watchOS' }}
name: Run Tests
run: fastlane test platform:${{ matrix.platform[0] }} version:${{ matrix.platform[1] }} scheme:SwiftUIIntrospectTests configuration:Debug
# - if: ${{ matrix.platform[0] == 'iOS' && matrix.platform[1] <= '16' }}
# name: Run UI Tests
# run: fastlane test platform:${{ matrix.platform[0] }} version:${{ matrix.platform[1] }} scheme:SwiftUIIntrospectUITests configuration:Debug