main
yml 84 lines 1.73 KB
Raw
1 name: CI
2
3 on:
4 push:
5 branches: [main]
6 pull_request:
7 branches: [main]
8 workflow_dispatch:
9
10 concurrency:
11 group: ci-${{ github.ref }}
12 cancel-in-progress: true
13
14 permissions:
15 contents: read
16
17 jobs:
18 validate:
19 name: Validate manifest
20 runs-on: macos-26
21 steps:
22 - uses: actions/checkout@v6
23 - name: Dump package
24 run: swift package dump-package
25 - name: Resolve dependencies
26 run: swift package resolve
27
28 build-macos:
29 name: Build (macOS)
30 needs: validate
31 runs-on: macos-26
32 steps:
33 - uses: actions/checkout@v6
34 - run: swift build
35
36 test-macos:
37 name: Test (macOS)
38 needs: validate
39 runs-on: macos-26
40 steps:
41 - uses: actions/checkout@v6
42 - run: swift test
43
44 build-ios:
45 name: Build (iOS)
46 needs: validate
47 runs-on: macos-26
48 steps:
49 - uses: actions/checkout@v6
50 - name: Build for iOS
51 run: >
52 xcodebuild build
53 -scheme Ed
54 -destination 'generic/platform=iOS'
55 -skipPackagePluginValidation
56 -skipMacroValidation
57
58 build-tvos:
59 name: Build (tvOS)
60 needs: validate
61 runs-on: macos-26
62 steps:
63 - uses: actions/checkout@v6
64 - name: Build for tvOS
65 run: >
66 xcodebuild build
67 -scheme Ed
68 -destination 'generic/platform=tvOS'
69 -skipPackagePluginValidation
70 -skipMacroValidation
71
72 build-visionos:
73 name: Build (visionOS)
74 needs: validate
75 runs-on: macos-26
76 steps:
77 - uses: actions/checkout@v6
78 - name: Build for visionOS
79 run: >
80 xcodebuild build
81 -scheme Ed
82 -destination 'generic/platform=visionOS'
83 -skipPackagePluginValidation
84 -skipMacroValidation