-
-
Notifications
You must be signed in to change notification settings - Fork 3.7k
150 lines (139 loc) · 4.25 KB
/
main.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
name: CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build-package-macos-12:
name: "Build Package"
runs-on: macos-12
strategy:
fail-fast: false
matrix:
xcode:
- '13.2.1' # Swift 5.5
- '13.4.1' # Swift 5.6
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/setup
with:
xcode: ${{ matrix.xcode }}
- name: Build Package
run: bundle exec rake build:package:all
build-package-macos-13:
name: "Build Package"
runs-on: macos-13
strategy:
fail-fast: false
matrix:
xcode:
- '14.2' # Swift 5.7
- '14.3' # Swift 5.8
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/setup
with:
xcode: ${{ matrix.xcode }}
- name: Build Package
run: bundle exec rake build:package:all
build-example:
name: "Build Example App"
runs-on: macos-13
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/setup
with:
xcode: '14.3' # Swift 5.8
- name: Build Example
run: bundle exec rake build:example:all
test-package:
name: "Test Package"
runs-on: macos-13
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/setup
with:
xcode: '14.3' # Swift 5.8
- name: Test Package
run: bundle exec rake test:package
- name: Process test artifacts
if: always()
run: bundle exec rake test:process
- name: Upload artifacts
if: always()
uses: actions/upload-artifact@v2
with:
name: TestArtifacts
path: Tests/Artifacts
build-xcframework:
name: "Build XCFramework"
runs-on: macos-12
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/setup
with:
# XCFrameworks are forwards-compatible but not backwards-compatible.
# The Xcode version we use for this job is that oldest Xcode version that
# will be able to use these XCFrameworks and the lottie-spm package.
xcode: '13.2.1' # Swift 5.5.2
- name: Build XCFramework
run: bundle exec rake build:xcframework
- name: Upload XCFramework
uses: actions/upload-artifact@v2
with:
name: BuildProducts
# The xcframework is at the path `.build/archives/Lottie.xcframework.zip`.
# GitHub always zips the artifacts before uploading, so if we uploaded the .xframework.zip
# directly then it would actually upload a double-zip (a .zip containing our `Lottie.xcframework.zip`).
# This is confusing especially since macOS Archive Utility automatially unzips both layers at once.
# Instead, we upload the entire archives folder, resulting in an `XCFramework.zip` that unzips
# to an `archives` directory containing our `Lottie.xcframework.zip`.
path: .build/archives
cocoapod:
name: "Lint CocoaPods podspec"
runs-on: macos-13
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/setup
with:
install-mint: false
- name: Lint CocoaPod Podspec
run: bundle exec rake lint:podspec
spm:
name: "Test Swift Package Manager support"
runs-on: macos-13
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/setup
with:
install-mint: true
- name: Test Swift Package Manager support
run: bundle exec rake test:spm
carthage:
name: "Test Carthage support"
runs-on: macos-13
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/setup
with:
install-mint: true
install-carthage: true
- name: Test Carthage support
run: bundle exec rake test:carthage
swiftlint:
name: "Lint Swift"
runs-on: macos-13
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/setup
- name: Lint Swift
run: bundle exec rake lint:swift
embedded-libraries:
name: "Lint Embedded Libraries"
runs-on: macos-13
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/setup
- name: Lint Embedded Libraries
run: bundle exec rake lint:EmbeddedLibraries