-
Notifications
You must be signed in to change notification settings - Fork 2
executable file
·145 lines (136 loc) · 4.54 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
name: "CoreDataPlus CI"
on:
schedule:
- cron: '0 0 * * 2' # Run every Tuesday
push:
branches:
- main
- develop
pull_request:
branches:
- main
- develop
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
jobs:
info:
name: Show macOS and Xcode versions
runs-on: macos-14
env:
DEVELOPER_DIR: /Applications/Xcode_15.3.app/Contents/Developer
steps:
- name: Versions
run: |
sw_vers
swift --version
xcodebuild -version
xcodebuild -showsdks
xcrun simctl list
macOS:
name: Test macOS
runs-on: macos-14
env:
DEVELOPER_DIR: /Applications/Xcode_15.3.app/Contents/Developer
steps:
- uses: actions/checkout@v4
- name: macOS
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "CoreDataPlus.xcodeproj" -scheme "CoreDataPlus" -destination "platform=macOS" clean test -quiet -resultBundlePath '~/Downloads/Report/report.xcresult'
- name: Upload tests report
if: failure()
uses: actions/upload-artifact@v4
with:
name: macOS tests report
path: ~/Downloads/Report
iOS:
name: Test iOS
runs-on: macos-14
env:
DEVELOPER_DIR: /Applications/Xcode_15.3.app/Contents/Developer
strategy:
matrix:
destination: ["OS=17.0,name=iPhone 15 Pro"]
steps:
- uses: actions/checkout@v4
- name: iOS - ${{ matrix.destination }}
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "CoreDataPlus.xcodeproj" -scheme "CoreDataPlus" -destination "${{ matrix.destination }}" clean test -quiet -resultBundlePath '~/Downloads/Report/report.xcresult'
- name: Upload tests report
if: always()
uses: actions/upload-artifact@v4
with:
name: iOS tests report
path: ~/Downloads/Report
visionOS:
name: Test visionOS
runs-on: macos-14
env:
DEVELOPER_DIR: /Applications/Xcode_15.3.app/Contents/Developer
strategy:
matrix:
destination: ["OS=1.0,name=Apple Vision Pro"]
steps:
- uses: actions/checkout@v4
- name: iOS - ${{ matrix.destination }}
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "CoreDataPlus.xcodeproj" -scheme "CoreDataPlus" -destination "${{ matrix.destination }}" clean test -quiet -resultBundlePath '~/Downloads/Report/report.xcresult'
- name: Upload tests report
if: always()
uses: actions/upload-artifact@v4
with:
name: visionOS 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=17.0,name=Apple TV"]
steps:
- uses: actions/checkout@v4
- name: tvOS - ${{ matrix.destination }}
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "CoreDataPlus.xcodeproj" -scheme "CoreDataPlus" -destination "${{ matrix.destination }}" clean test -quiet -resultBundlePath '~/Downloads/Report/report.xcresult'
- name: Upload tests report
if: failure()
uses: actions/upload-artifact@v4
with:
name: tvOS tests report
path: ~/Downloads/Report
watchOS:
name: Test watchOS
runs-on: macos-14
env:
DEVELOPER_DIR: /Applications/Xcode_15.3.app/Contents/Developer
strategy:
matrix:
destination: ["OS=10.0,name=Apple Watch Series 9 (45mm)"]
steps:
- uses: actions/checkout@v4
- name: watchOS - ${{ matrix.destination }}
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "CoreDataPlus.xcodeproj" -scheme "CoreDataPlus" -destination "${{ matrix.destination }}" clean test -quiet -resultBundlePath '~/Downloads/Report/report.xcresult'
- name: Upload tests report
if: failure()
uses: actions/upload-artifact@v4
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@v4
- name: SPM Test
run: |
swift --version
swift test
# lint:
# name: Swift Lint
# runs-on: macos-14
# steps:
# - uses: actions/checkout@v4
# - name: Run SwiftLint
# run: |
# swift --version
# swiftlint --reporter github-actions-logging