Add CI workflow and update Swift tools to 6.2

Enable visionOS support in Package.swift and add a GitHub Actions workflow for CI covering macOS, iOS, tvOS, and visionOS builds.

keypair34 committed Apr 9, 2026 at 21:18 UTC 9c4d61eb6d82e95cdbdec465bc36a093166c04e0
2 files changed +78 -1
.github/workflows/ci.yml new
+76
@@ -0,0 +1,76 @@
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@v4
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@v4
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@v4
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@v4
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@v4
70 + - name: Build for visionOS
71 + run: >
72 + xcodebuild build
73 + -scheme Onde
74 + -destination 'generic/platform=visionOS'
75 + -skipPackagePluginValidation
76 + -skipMacroValidation
\ No newline at end of file
Package.swift
+2 -1
@@ -1,4 +1,4 @@
1 -// swift-tools-version:5.5
1 +// swift-tools-version:6.2
2 import PackageDescription
3
4 // ─────────────────────────────────────────────────────────────────────────────
@@ -26,6 +26,7 @@ let package = Package(
26 .iOS(.v15),
27 .macOS(.v11),
28 .tvOS(.v15),
29 + .visionOS(.v26),
30 ],
31 products: [
32 .library(name: "Onde", targets: ["Onde"])