-
Notifications
You must be signed in to change notification settings - Fork 0
executable file
·119 lines (113 loc) · 3.92 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
name: "AdvancedOperation CI"
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
on:
schedule:
- cron: '0 23 * * *' # At the end of every day
push:
branches:
- main
- develop
pull_request:
branches:
- main
- develop
jobs:
info:
name: Show macOS and Xcode versions
runs-on: macos-14
env:
DEVELOPER_DIR: /Applications/Xcode_15.3.app/Contents/Developer
steps:
- name: stats
run: |
sw_vers
xcodebuild -version
xcodebuild -showsdks
xcrun simctl list
brew -v
brew info swiftlint
macOS:
name: Test macOS
runs-on: macos-14
env:
DEVELOPER_DIR: /Applications/Xcode_15.3.app/Contents/Developer
steps:
- uses: actions/checkout@v2
- name: macOS
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "AdvancedOperation.xcodeproj" -scheme "AdvancedOperation" -destination "platform=macOS" clean test -quiet -resultBundlePath '~/Downloads/Report/report.xcresult'
iOS:
name: Test iOS
runs-on: macos-14
env:
DEVELOPER_DIR: /Applications/Xcode_15.3.app/Contents/Developer
strategy:
matrix:
destination: ["OS=16.0,name=iPhone 13 Pro"]
steps:
- uses: actions/checkout@v2
- name: iOS - ${{ matrix.destination }}
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "AdvancedOperation.xcodeproj" -scheme "AdvancedOperation" -destination "${{ matrix.destination }}" clean test -quiet -resultBundlePath '~/Downloads/Report/report.xcresult'
- name: Upload tests report
if: ${{ always() }} # to run it only if the previous step fails use ${{ failure() }}
uses: actions/upload-artifact@v2
with:
name: iOS tests report
path: ~/Downloads/Report
tvOS:
name: Test tvOS
runs-on: macos-14
env:
DEVELOPER_DIR: /Applications/Xcode_15.3.app/Contents/Developer
strategy:
matrix:
destination: ["OS=16.0,name=Apple TV 4K (2nd generation)""]
steps:
- uses: actions/checkout@v2
- name: tvOS - ${{ matrix.destination }}
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "AdvancedOperation.xcodeproj" -scheme "AdvancedOperation" -destination "${{ matrix.destination }}" clean test -quiet -resultBundlePath '~/Downloads/Report/report.xcresult'
- name: Upload tests report
if: ${{ always() }} # to run it only if the previous step fails use ${{ failure() }}
uses: actions/upload-artifact@v2
with:
name: tvOS tests report
path: ~/Downloads/Report
watchOS:
name: Build watchOS
runs-on: macos-14
env:
DEVELOPER_DIR: /Applications/Xcode_15.3.app/Contents/Developer
strategy:
matrix:
destination: ["OS=9.0,name=Apple Watch Series 8 (45mm)"]
steps:
- uses: actions/checkout@v2
- name: watchOS - ${{ matrix.destination }}
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "AdvancedOperation.xcodeproj" -scheme "AdvancedOperation" -destination "${{ matrix.destination }}" clean test -quiet -resultBundlePath '~/Downloads/Report/report.xcresult'
- name: Upload tests report
if: ${{ always() }} # to run it only if the previous step fails use ${{ failure() }}
uses: actions/upload-artifact@v2
with:
name: watchOS tests report
path: ~/Downloads/Report
spm:
name: Test SPM Integration
runs-on: macos-14
env:
DEVELOPER_DIR: /Applications/Xcode_15.3.app/Contents/Developer
steps:
- uses: actions/checkout@v2
- name: SPM Test
run: |
swift --version
swift test
lint:
name: Swift Lint
runs-on: macos-14
steps:
- uses: actions/checkout@v2
- name: Run SwiftLint
run: |
swift --version
swiftlint --reporter github-actions-logging