Skip to content

Commit 87fa168

Browse files
committed
Update GitHub Actions workflow (#3)
* Update `ci.yml` * Update the Ruby version from `2.7` to `3.1.4` * Update `CHANGELOG.md` * Add support for Swift 5.8 * Fix a typo
1 parent 327132f commit 87fa168

5 files changed

Lines changed: 191 additions & 30 deletions

File tree

.github/workflows/ci.yml

Lines changed: 160 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,6 @@ on:
1313
- "Source/**"
1414
- "Tests/**"
1515

16-
concurrency:
17-
group: ci
18-
cancel-in-progress: true
19-
2016
jobs:
2117
SwiftLint:
2218
runs-on: ubuntu-latest
@@ -28,40 +24,176 @@ jobs:
2824
args: --strict
2925
env:
3026
DIFF_BASE: ${{ github.base_ref }}
31-
Latest:
32-
name: Test Latest (iOS, macOS, tvOS, watchOS)
33-
runs-on: macOS-12
27+
macOS:
28+
name: ${{ matrix.name }}
29+
runs-on: ${{ matrix.runsOn }}
30+
env:
31+
DEVELOPER_DIR: "/Applications/${{ matrix.xcode }}.app/Contents/Developer"
32+
timeout-minutes: 20
33+
strategy:
34+
fail-fast: false
35+
matrix:
36+
include:
37+
- xcode: "Xcode_15.0"
38+
runsOn: macos-13
39+
name: "macOS 13, Xcode 15.0, Swift 5.9.0"
40+
- xcode: "Xcode_14.3.1"
41+
runsOn: macos-13
42+
name: "macOS 13, Xcode 14.3.1, Swift 5.8.0"
43+
steps:
44+
- uses: actions/checkout@v3
45+
- name: ${{ matrix.name }}
46+
run: xcodebuild test -scheme "Log" -destination "platform=macOS" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1
47+
- name: Upload coverage reports to Codecov
48+
uses: codecov/codecov-action@v3.1.0
49+
with:
50+
token: ${{ secrets.CODECOV_TOKEN }}
51+
xcode: true
52+
xcode_archive_path: test_output/${{ matrix.name }}.xcresult
53+
- uses: actions/upload-artifact@v4
54+
with:
55+
name: ${{ matrix.name }}
56+
path: test_output
57+
58+
iOS:
59+
name: ${{ matrix.name }}
60+
runs-on: ${{ matrix.runsOn }}
61+
env:
62+
DEVELOPER_DIR: "/Applications/${{ matrix.xcode }}.app/Contents/Developer"
63+
timeout-minutes: 20
64+
strategy:
65+
fail-fast: false
66+
matrix:
67+
include:
68+
- destination: "OS=17.0.1,name=iPhone 14 Pro"
69+
name: "iOS 17.0.1"
70+
xcode: "Xcode_15.0"
71+
runsOn: macos-13
72+
- destination: "OS=16.4,name=iPhone 14 Pro"
73+
name: "iOS 16.4"
74+
xcode: "Xcode_14.3.1"
75+
runsOn: macos-13
76+
steps:
77+
- uses: actions/checkout@v3
78+
- name: ${{ matrix.name }}
79+
run: xcodebuild test -scheme "Log" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1
80+
- uses: actions/upload-artifact@v4
81+
with:
82+
name: ${{ matrix.name }}
83+
path: test_output
84+
85+
tvOS:
86+
name: ${{ matrix.name }}
87+
runs-on: ${{ matrix.runsOn }}
88+
env:
89+
DEVELOPER_DIR: "/Applications/${{ matrix.xcode }}.app/Contents/Developer"
90+
timeout-minutes: 20
91+
strategy:
92+
fail-fast: false
93+
matrix:
94+
include:
95+
- destination: "OS=17.0,name=Apple TV"
96+
name: "tvOS 17.0"
97+
xcode: "Xcode_15.0"
98+
runsOn: macos-13
99+
- destination: "OS=16.4,name=Apple TV"
100+
name: "tvOS 16.4"
101+
xcode: "Xcode_14.3.1"
102+
runsOn: macos-13
103+
steps:
104+
- uses: actions/checkout@v3
105+
- name: ${{ matrix.name }}
106+
run: xcodebuild test -scheme "Log" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1
107+
- name: Upload coverage reports to Codecov
108+
uses: codecov/codecov-action@v3.1.0
109+
with:
110+
token: ${{ secrets.CODECOV_TOKEN }}
111+
xcode: true
112+
xcode_archive_path: test_output/${{ matrix.name }}.xcresult
113+
- uses: actions/upload-artifact@v4
114+
with:
115+
name: ${{ matrix.name }}
116+
path: test_output
117+
118+
watchOS:
119+
name: ${{ matrix.name }}
120+
runs-on: ${{ matrix.runsOn }}
34121
env:
35-
DEVELOPER_DIR: "/Applications/Xcode_14.1.app/Contents/Developer"
36-
timeout-minutes: 10
122+
DEVELOPER_DIR: "/Applications/${{ matrix.xcode }}.app/Contents/Developer"
123+
timeout-minutes: 20
37124
strategy:
38125
fail-fast: false
39126
matrix:
40127
include:
41-
- destination: "OS=16.1,name=iPhone 14 Pro"
42-
name: "iOS"
43-
scheme: "Log"
44-
sdk: iphonesimulator
45-
- destination: "OS=16.1,name=Apple TV"
46-
name: "tvOS"
47-
scheme: "Log"
48-
sdk: appletvsimulator
49-
- destination: "OS=9.1,name=Apple Watch Series 8 (45mm)"
50-
name: "watchOS"
51-
scheme: "Log"
52-
sdk: watchsimulator
53-
- destination: "platform=macOS"
54-
name: "macOS"
55-
scheme: "Log"
56-
sdk: macosx
128+
- destination: "OS=10.0,name=Apple Watch Series 9 (45mm)"
129+
name: "watchOS 10.0"
130+
xcode: "Xcode_15.0"
131+
runsOn: macos-13
132+
- destination: "OS=9.4,name=Apple Watch Series 8 (45mm)"
133+
name: "watchOS 9.4"
134+
xcode: "Xcode_14.3.1"
135+
runsOn: macos-13
57136
steps:
58137
- uses: actions/checkout@v3
59138
- name: ${{ matrix.name }}
60-
run: xcodebuild test -scheme "${{ matrix.scheme }}" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "./${{ matrix.sdk }}.xcresult" | xcpretty -r junit
139+
run: xcodebuild test -scheme "Log" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1
61140
- name: Upload coverage reports to Codecov
62141
uses: codecov/codecov-action@v3.1.0
63142
with:
64143
token: ${{ secrets.CODECOV_TOKEN }}
65144
xcode: true
66-
xcode_archive_path: "./${{ matrix.sdk }}.xcresult"
67-
145+
xcode_archive_path: test_output/${{ matrix.name }}.xcresult
146+
- uses: actions/upload-artifact@v4
147+
with:
148+
name: ${{ matrix.name }}
149+
path: test_output
150+
151+
spm:
152+
name: ${{ matrix.name }}
153+
runs-on: ${{ matrix.runsOn }}
154+
env:
155+
DEVELOPER_DIR: "/Applications/${{ matrix.xcode }}.app/Contents/Developer"
156+
timeout-minutes: 20
157+
strategy:
158+
fail-fast: false
159+
matrix:
160+
include:
161+
- name: "Xcode 15"
162+
xcode: "Xcode_15.0"
163+
runsOn: macos-13
164+
- name: "Xcode 14"
165+
xcode: "Xcode_14.3.1"
166+
runsOn: macos-13
167+
steps:
168+
- uses: actions/checkout@v3
169+
- name: ${{ matrix.name }}
170+
run: swift build -c release
171+
172+
merge-test-reports:
173+
needs: [iOS, macOS, watchOS, tvOS]
174+
runs-on: macos-13
175+
steps:
176+
- name: Download artifacts
177+
uses: actions/download-artifact@v4
178+
with:
179+
path: test_output
180+
- run: xcrun xcresulttool merge test_output/**/*.xcresult --output-path test_output/final/final.xcresult
181+
- name: Upload Merged Artifact
182+
uses: actions/upload-artifact@v4
183+
with:
184+
name: MergedResult
185+
path: test_output/final
186+
187+
discover-typos:
188+
name: Discover Typos
189+
runs-on: macOS-12
190+
env:
191+
DEVELOPER_DIR: /Applications/Xcode_14.1.app/Contents/Developer
192+
steps:
193+
- uses: actions/checkout@v2
194+
- name: Discover typos
195+
run: |
196+
export PATH="$PATH:/Library/Frameworks/Python.framework/Versions/3.11/bin"
197+
python3 -m pip install --upgrade pip
198+
python3 -m pip install codespell
199+
codespell --ignore-words-list="hart,inout,msdos,sur" --skip="./.build/*,./.git/*"

.github/workflows/danger.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
- name: ruby setup
1616
uses: ruby/setup-ruby@v1
1717
with:
18-
ruby-version: 2.7
18+
ruby-version: 3.1.4
1919
bundler-cache: true
2020
- name: Checkout code
2121
uses: actions/checkout@v2

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
# Change Log
22
All notable changes to this project will be documented in this file.
33

4+
## [Unreleased]
5+
#### Added
6+
- Update GitHub Actions workflow
7+
- Added in Pull Request [#3](https://github.com/space-code/log/pull/3).
8+
49
#### 1.x Releases
510
- `1.0.x` Releases - [1.0.0](#100)
611

Package@swift-5.8.swift

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// swift-tools-version: 5.8
2+
// The swift-tools-version declares the minimum version of Swift required to build this package.
3+
// swiftlint:disable all
4+
5+
import PackageDescription
6+
7+
let package = Package(
8+
name: "Log",
9+
platforms: [
10+
.macOS(.v10_15),
11+
.iOS(.v13),
12+
.watchOS(.v7),
13+
.tvOS(.v13),
14+
],
15+
products: [
16+
.library(name: "Log", targets: ["Log"]),
17+
],
18+
dependencies: [],
19+
targets: [
20+
.target(name: "Log", dependencies: []),
21+
.testTarget(name: "LogTests", dependencies: ["Log"]),
22+
]
23+
)
24+
// swiftlint:enable all

Sources/Log/Classes/Core/Logger/Logger.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ open class Logger {
4141
printers.forEach { $0.log(message, logLevel: logLevel) }
4242
}
4343

44-
/// Checks if the given `LogLevel` is allowed by the reciever.
44+
/// Checks if the given `LogLevel` is allowed by the receiver.
4545
///
4646
/// - Parameter logLevel: The log level to check.
4747
private func isLoggerEnabled(for logLevel: LogLevel) -> Bool {

0 commit comments

Comments
 (0)