main
yml 90 lines 1.93 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 build-ios:
37 name: Build (iOS)
38 needs: validate
39 runs-on: macos-26
40 steps:
41 - uses: actions/checkout@v6
42 - name: Build for iOS
43 run: >
44 xcodebuild build
45 -scheme Onde
46 -destination 'generic/platform=iOS'
47 -skipPackagePluginValidation
48 -skipMacroValidation
49
50 build-tvos:
51 name: Build (tvOS)
52 needs: validate
53 runs-on: macos-26
54 steps:
55 - uses: actions/checkout@v6
56 - name: Build for tvOS
57 run: >
58 xcodebuild build
59 -scheme Onde
60 -destination 'generic/platform=tvOS'
61 -skipPackagePluginValidation
62 -skipMacroValidation
63
64 build-visionos:
65 name: Build (visionOS)
66 needs: validate
67 runs-on: macos-26
68 steps:
69 - uses: actions/checkout@v6
70 - name: Build for visionOS
71 run: >
72 xcodebuild build
73 -scheme Onde
74 -destination 'generic/platform=visionOS'
75 -skipPackagePluginValidation
76 -skipMacroValidation
77
78 build-watchos:
79 name: Build (watchOS)
80 needs: validate
81 runs-on: macos-26
82 steps:
83 - uses: actions/checkout@v6
84 - name: Build for watchOS
85 run: >
86 xcodebuild build
87 -scheme Onde
88 -destination 'generic/platform=watchOS'
89 -skipPackagePluginValidation
90 -skipMacroValidation