Skip to content

Commit 765c588

Browse files
committed
feat(CI): Update workflow
1 parent 75cd4ea commit 765c588

10 files changed

+331
-73
lines changed

.github/package.xcworkspace/xcshareddata/xcschemes/InterceptionMacrosPluginTests.xcscheme

+25
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,22 @@
55
<BuildAction
66
parallelizeBuildables = "YES"
77
buildImplicitDependencies = "YES">
8+
<BuildActionEntries>
9+
<BuildActionEntry
10+
buildForTesting = "YES"
11+
buildForRunning = "YES"
12+
buildForProfiling = "YES"
13+
buildForArchiving = "YES"
14+
buildForAnalyzing = "YES">
15+
<BuildableReference
16+
BuildableIdentifier = "primary"
17+
BlueprintIdentifier = "InterceptionMacrosPluginTests"
18+
BuildableName = "InterceptionMacrosPluginTests"
19+
BlueprintName = "InterceptionMacrosPluginTests"
20+
ReferencedContainer = "container:">
21+
</BuildableReference>
22+
</BuildActionEntry>
23+
</BuildActionEntries>
824
</BuildAction>
925
<TestAction
1026
buildConfiguration = "Debug"
@@ -42,6 +58,15 @@
4258
savedToolIdentifier = ""
4359
useCustomWorkingDirectory = "NO"
4460
debugDocumentVersioning = "YES">
61+
<MacroExpansion>
62+
<BuildableReference
63+
BuildableIdentifier = "primary"
64+
BlueprintIdentifier = "InterceptionMacrosPluginTests"
65+
BuildableName = "InterceptionMacrosPluginTests"
66+
BlueprintName = "InterceptionMacrosPluginTests"
67+
ReferencedContainer = "container:">
68+
</BuildableReference>
69+
</MacroExpansion>
4570
</ProfileAction>
4671
<AnalyzeAction
4772
buildConfiguration = "Debug">

.github/package.xcworkspace/xcshareddata/xcschemes/InterceptionMacrosTests.xcscheme

+25
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,22 @@
55
<BuildAction
66
parallelizeBuildables = "YES"
77
buildImplicitDependencies = "YES">
8+
<BuildActionEntries>
9+
<BuildActionEntry
10+
buildForTesting = "YES"
11+
buildForRunning = "YES"
12+
buildForProfiling = "YES"
13+
buildForArchiving = "YES"
14+
buildForAnalyzing = "YES">
15+
<BuildableReference
16+
BuildableIdentifier = "primary"
17+
BlueprintIdentifier = "InterceptionMacrosTests"
18+
BuildableName = "InterceptionMacrosTests"
19+
BlueprintName = "InterceptionMacrosTests"
20+
ReferencedContainer = "container:">
21+
</BuildableReference>
22+
</BuildActionEntry>
23+
</BuildActionEntries>
824
</BuildAction>
925
<TestAction
1026
buildConfiguration = "Debug"
@@ -42,6 +58,15 @@
4258
savedToolIdentifier = ""
4359
useCustomWorkingDirectory = "NO"
4460
debugDocumentVersioning = "YES">
61+
<MacroExpansion>
62+
<BuildableReference
63+
BuildableIdentifier = "primary"
64+
BlueprintIdentifier = "InterceptionMacrosTests"
65+
BuildableName = "InterceptionMacrosTests"
66+
BlueprintName = "InterceptionMacrosTests"
67+
ReferencedContainer = "container:">
68+
</BuildableReference>
69+
</MacroExpansion>
4570
</ProfileAction>
4671
<AnalyzeAction
4772
buildConfiguration = "Debug">

.github/package.xcworkspace/xcshareddata/xcschemes/InterceptionTests.xcscheme

+25
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,22 @@
55
<BuildAction
66
parallelizeBuildables = "YES"
77
buildImplicitDependencies = "YES">
8+
<BuildActionEntries>
9+
<BuildActionEntry
10+
buildForTesting = "YES"
11+
buildForRunning = "YES"
12+
buildForProfiling = "YES"
13+
buildForArchiving = "YES"
14+
buildForAnalyzing = "YES">
15+
<BuildableReference
16+
BuildableIdentifier = "primary"
17+
BlueprintIdentifier = "InterceptionTests"
18+
BuildableName = "InterceptionTests"
19+
BlueprintName = "InterceptionTests"
20+
ReferencedContainer = "container:">
21+
</BuildableReference>
22+
</BuildActionEntry>
23+
</BuildActionEntries>
824
</BuildAction>
925
<TestAction
1026
buildConfiguration = "Debug"
@@ -42,6 +58,15 @@
4258
savedToolIdentifier = ""
4359
useCustomWorkingDirectory = "NO"
4460
debugDocumentVersioning = "YES">
61+
<MacroExpansion>
62+
<BuildableReference
63+
BuildableIdentifier = "primary"
64+
BlueprintIdentifier = "InterceptionTests"
65+
BuildableName = "InterceptionTests"
66+
BlueprintName = "InterceptionTests"
67+
ReferencedContainer = "container:">
68+
</BuildableReference>
69+
</MacroExpansion>
4570
</ProfileAction>
4671
<AnalyzeAction
4772
buildConfiguration = "Debug">

.github/workflows/ci.yml

+85-12
Original file line numberDiff line numberDiff line change
@@ -7,28 +7,101 @@ on:
77
pull_request:
88
branches:
99
- '*'
10+
workflow_dispatch:
1011

1112
concurrency:
1213
group: ci-${{ github.ref }}
1314
cancel-in-progress: true
1415

1516
jobs:
16-
library-swift-latest:
17-
name: Library
17+
test-library:
18+
name: test-library
1819
if: |
1920
!contains(github.event.head_commit.message, '[ci skip]') &&
2021
!contains(github.event.head_commit.message, '[ci skip test]') &&
2122
!contains(github.event.head_commit.message, '[ci skip library-swift-latest]')
22-
runs-on: macos-13
23-
timeout-minutes: 30
23+
runs-on: macos-14
2424
strategy:
25+
fail-fast: false
2526
matrix:
26-
config:
27-
- debug
28-
- release
27+
platform: [iOS, macOS, tvOS, watchOS, macCatalyst]
28+
xcode: ['15.4', '16.1']
29+
config: [Debug]
30+
command: [test]
31+
scheme: [Interception]
2932
steps:
30-
- uses: actions/checkout@v4
31-
- name: Select Xcode 15.2
32-
run: sudo xcode-select -s /Applications/Xcode_15.2.app
33-
- name: Run test
34-
run: make test
33+
- uses: actions/checkout@v4
34+
with:
35+
submodules: true
36+
- name: Select Xcode ${{ matrix.xcode }}
37+
run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app
38+
- name: Cache derived data
39+
uses: actions/cache@v3
40+
with:
41+
path: |
42+
~/.derivedData
43+
key: |
44+
deriveddata-xcodebuild-${{ matrix.platform }}-${{ matrix.xcode }}-${{ matrix.command }}-${{ hashFiles('**/Sources/**/*.swift', '**/Tests/**/*.swift') }}
45+
restore-keys: |
46+
deriveddata-xcodebuild-${{ matrix.platform }}-${{ matrix.xcode }}-${{ matrix.command }}-
47+
- name: Set IgnoreFileSystemDeviceInodeChanges flag
48+
run: defaults write com.apple.dt.XCBuild IgnoreFileSystemDeviceInodeChanges -bool YES
49+
- name: Update mtime for incremental builds
50+
uses: chetan/git-restore-mtime-action@v2
51+
- name: test-library (${{ matrix.config }})
52+
uses: capturecontext/[email protected]
53+
with:
54+
command: xcodebuild
55+
subcommand: ${{ matrix.command }}
56+
platform: ${{ matrix.platform }}
57+
scheme: ${{ matrix.scheme }}
58+
config: ${{ matrix.config }}
59+
- name: test-library-macros (${{ matrix.config }})
60+
uses: capturecontext/[email protected]
61+
with:
62+
command: xcodebuild-macros
63+
subcommand: ${{ matrix.command }}
64+
platform: ${{ matrix.platform }}
65+
scheme: ${{ matrix.scheme }}
66+
config: ${{ matrix.config }}
67+
test-library-macros-plugin:
68+
name: test-library-macros-plugin
69+
if: |
70+
!contains(github.event.head_commit.message, '[ci skip]') &&
71+
!contains(github.event.head_commit.message, '[ci skip test]') &&
72+
!contains(github.event.head_commit.message, '[ci skip library-swift-latest]')
73+
runs-on: macos-14
74+
strategy:
75+
matrix:
76+
platform: [macOS]
77+
xcode: ['16.1']
78+
command: [test]
79+
config: [Debug]
80+
scheme: [Interception]
81+
steps:
82+
- uses: actions/checkout@v4
83+
with:
84+
submodules: true
85+
- name: Select Xcode ${{ matrix.xcode }}
86+
run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app
87+
- name: Cache derived data
88+
uses: actions/cache@v3
89+
with:
90+
path: |
91+
~/.derivedData
92+
key: |
93+
deriveddata-xcodebuild-${{ matrix.platform }}-${{ matrix.xcode }}-${{ matrix.command }}-${{ hashFiles('**/Sources/**/*.swift', '**/Tests/**/*.swift') }}
94+
restore-keys: |
95+
deriveddata-xcodebuild-${{ matrix.platform }}-${{ matrix.xcode }}-${{ matrix.command }}-
96+
- name: Set IgnoreFileSystemDeviceInodeChanges flag
97+
run: defaults write com.apple.dt.XCBuild IgnoreFileSystemDeviceInodeChanges -bool YES
98+
- name: Update mtime for incremental builds
99+
uses: chetan/git-restore-mtime-action@v2
100+
- name: test-library-macros-plugin (${{ matrix.config }})
101+
uses: capturecontext/[email protected]
102+
with:
103+
command: xcodebuild-macros-plugin
104+
subcommand: ${{ matrix.command }}
105+
platform: ${{ matrix.platform }}
106+
scheme: ${{ matrix.scheme }}
107+
config: ${{ matrix.config }}

.gitmodules

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "swift-package-action"]
2+
path = swift-package-action
3+
url = [email protected]:capturecontext/swift-package-action.git

.swiftpm/xcode/xcshareddata/xcschemes/InterceptionMacrosPluginTests.xcscheme

+25
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,22 @@
55
<BuildAction
66
parallelizeBuildables = "YES"
77
buildImplicitDependencies = "YES">
8+
<BuildActionEntries>
9+
<BuildActionEntry
10+
buildForTesting = "YES"
11+
buildForRunning = "YES"
12+
buildForProfiling = "YES"
13+
buildForArchiving = "YES"
14+
buildForAnalyzing = "YES">
15+
<BuildableReference
16+
BuildableIdentifier = "primary"
17+
BlueprintIdentifier = "InterceptionMacrosPluginTests"
18+
BuildableName = "InterceptionMacrosPluginTests"
19+
BlueprintName = "InterceptionMacrosPluginTests"
20+
ReferencedContainer = "container:">
21+
</BuildableReference>
22+
</BuildActionEntry>
23+
</BuildActionEntries>
824
</BuildAction>
925
<TestAction
1026
buildConfiguration = "Debug"
@@ -42,6 +58,15 @@
4258
savedToolIdentifier = ""
4359
useCustomWorkingDirectory = "NO"
4460
debugDocumentVersioning = "YES">
61+
<MacroExpansion>
62+
<BuildableReference
63+
BuildableIdentifier = "primary"
64+
BlueprintIdentifier = "InterceptionMacrosPluginTests"
65+
BuildableName = "InterceptionMacrosPluginTests"
66+
BlueprintName = "InterceptionMacrosPluginTests"
67+
ReferencedContainer = "container:">
68+
</BuildableReference>
69+
</MacroExpansion>
4570
</ProfileAction>
4671
<AnalyzeAction
4772
buildConfiguration = "Debug">

.swiftpm/xcode/xcshareddata/xcschemes/InterceptionMacrosTests.xcscheme

+25
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,22 @@
55
<BuildAction
66
parallelizeBuildables = "YES"
77
buildImplicitDependencies = "YES">
8+
<BuildActionEntries>
9+
<BuildActionEntry
10+
buildForTesting = "YES"
11+
buildForRunning = "YES"
12+
buildForProfiling = "YES"
13+
buildForArchiving = "YES"
14+
buildForAnalyzing = "YES">
15+
<BuildableReference
16+
BuildableIdentifier = "primary"
17+
BlueprintIdentifier = "InterceptionMacrosTests"
18+
BuildableName = "InterceptionMacrosTests"
19+
BlueprintName = "InterceptionMacrosTests"
20+
ReferencedContainer = "container:">
21+
</BuildableReference>
22+
</BuildActionEntry>
23+
</BuildActionEntries>
824
</BuildAction>
925
<TestAction
1026
buildConfiguration = "Debug"
@@ -42,6 +58,15 @@
4258
savedToolIdentifier = ""
4359
useCustomWorkingDirectory = "NO"
4460
debugDocumentVersioning = "YES">
61+
<MacroExpansion>
62+
<BuildableReference
63+
BuildableIdentifier = "primary"
64+
BlueprintIdentifier = "InterceptionMacrosTests"
65+
BuildableName = "InterceptionMacrosTests"
66+
BlueprintName = "InterceptionMacrosTests"
67+
ReferencedContainer = "container:">
68+
</BuildableReference>
69+
</MacroExpansion>
4570
</ProfileAction>
4671
<AnalyzeAction
4772
buildConfiguration = "Debug">

.swiftpm/xcode/xcshareddata/xcschemes/InterceptionTests.xcscheme

+25
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,22 @@
55
<BuildAction
66
parallelizeBuildables = "YES"
77
buildImplicitDependencies = "YES">
8+
<BuildActionEntries>
9+
<BuildActionEntry
10+
buildForTesting = "YES"
11+
buildForRunning = "YES"
12+
buildForProfiling = "YES"
13+
buildForArchiving = "YES"
14+
buildForAnalyzing = "YES">
15+
<BuildableReference
16+
BuildableIdentifier = "primary"
17+
BlueprintIdentifier = "InterceptionTests"
18+
BuildableName = "InterceptionTests"
19+
BlueprintName = "InterceptionTests"
20+
ReferencedContainer = "container:">
21+
</BuildableReference>
22+
</BuildActionEntry>
23+
</BuildActionEntries>
824
</BuildAction>
925
<TestAction
1026
buildConfiguration = "Debug"
@@ -42,6 +58,15 @@
4258
savedToolIdentifier = ""
4359
useCustomWorkingDirectory = "NO"
4460
debugDocumentVersioning = "YES">
61+
<MacroExpansion>
62+
<BuildableReference
63+
BuildableIdentifier = "primary"
64+
BlueprintIdentifier = "InterceptionTests"
65+
BuildableName = "InterceptionTests"
66+
BlueprintName = "InterceptionTests"
67+
ReferencedContainer = "container:">
68+
</BuildableReference>
69+
</MacroExpansion>
4570
</ProfileAction>
4671
<AnalyzeAction
4772
buildConfiguration = "Debug">

0 commit comments

Comments
 (0)