Skip to content

Commit 75402e6

Browse files
Use SwiftSyntax prebuilt action in CI
1 parent 3396b5e commit 75402e6

9 files changed

Lines changed: 44 additions & 15 deletions

File tree

.github/workflows/test.yml

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,21 @@ jobs:
1515
- os: ubuntu-24.04
1616
toolchain:
1717
download-url: https://download.swift.org/development/ubuntu2404/swift-DEVELOPMENT-SNAPSHOT-2026-05-27-a/swift-DEVELOPMENT-SNAPSHOT-2026-05-27-a-ubuntu24.04.tar.gz
18+
swift-syntax-version: "603.0.2"
1819
wasi-backend: Node
1920
target: "wasm32-unknown-wasip1"
2021
env: |
2122
JAVASCRIPTKIT_DISABLE_TRACING_TRAIT=1
2223
- os: ubuntu-24.04
2324
toolchain:
2425
download-url: https://download.swift.org/swift-6.3-branch/ubuntu2404/swift-6.3-DEVELOPMENT-SNAPSHOT-2026-03-05-a/swift-6.3-DEVELOPMENT-SNAPSHOT-2026-03-05-a-ubuntu24.04.tar.gz
26+
swift-syntax-version: "603.0.2"
2527
wasi-backend: Node
2628
target: "wasm32-unknown-wasip1"
2729
- os: ubuntu-22.04
2830
toolchain:
2931
download-url: https://download.swift.org/development/ubuntu2204/swift-DEVELOPMENT-SNAPSHOT-2026-05-27-a/swift-DEVELOPMENT-SNAPSHOT-2026-05-27-a-ubuntu22.04.tar.gz
32+
swift-syntax-version: "603.0.2"
3033
wasi-backend: Node
3134
target: "wasm32-unknown-wasip1-threads"
3235

@@ -53,17 +56,25 @@ jobs:
5356
run: |
5457
echo "SWIFT_SDK_ID=${{ steps.setup-swiftwasm.outputs.swift-sdk-id }}" >> $GITHUB_ENV
5558
echo "SWIFT_BIN_PATH=$(dirname $(which swiftc))" >> $GITHUB_ENV
59+
- uses: swiftwasm/setup-swift-syntax-prebuilts@v1
60+
id: swiftsyntax-prebuilts
61+
with:
62+
swift-syntax-version: ${{ matrix.entry.swift-syntax-version }}
5663
- run: make bootstrap
5764
- run: make unittest
5865
# Skip unit tests with uwasi because its proc_exit throws
5966
# unhandled promise rejection.
6067
if: ${{ matrix.entry.wasi-backend != 'MicroWASI' }}
68+
env:
69+
SWIFT_PACKAGE_FLAGS: ${{ steps.swiftsyntax-prebuilts.outputs.swift-flags }}
6170
- name: Check if SwiftPM resources are stale
6271
run: |
6372
make regenerate_swiftpm_resources
6473
git diff --exit-code Sources/JavaScriptKit/Runtime
65-
- run: swift test --package-path ./Plugins/PackageToJS
66-
- run: swift test --package-path ./Plugins/BridgeJS
74+
- run: swift test ${{ steps.swiftsyntax-prebuilts.outputs.swift-flags }} --package-path ./Plugins/PackageToJS
75+
- run: swift test ${{ steps.swiftsyntax-prebuilts.outputs.swift-flags }} --package-path ./Plugins/BridgeJS
76+
env:
77+
BRIDGEJS_OVERRIDE_SWIFT_SYNTAX_VERSION: ${{ matrix.entry.swift-syntax-version }}
6778
- name: Validate BridgeJS TypeScript declarations
6879
run: npm run check:bridgejs-dts
6980

@@ -73,7 +84,7 @@ jobs:
7384
matrix:
7485
entry:
7586
- image: "swift:6.3"
76-
swift-syntax-version: "603.0.0"
87+
swift-syntax-version: "603.0.2"
7788
runs-on: ubuntu-latest
7889
container:
7990
image: ${{ matrix.entry.image }}
@@ -85,12 +96,14 @@ jobs:
8596
node-version: '20'
8697
- name: Install TypeScript
8798
run: npm install
99+
- uses: swiftwasm/setup-swift-syntax-prebuilts@v1
100+
id: swiftsyntax-prebuilts
101+
with:
102+
swift-syntax-version: ${{ matrix.entry.swift-syntax-version }}
88103
- name: Validate BridgeJS TypeScript declarations
89104
run: npm run check:bridgejs-dts
90105
- name: Run BridgeJS tests
91-
# NOTE: Seems like the prebuilt SwiftSyntax binaries are not compatible with
92-
# non-macro dependents, so disable experimental prebuilts for now.
93-
run: swift test --disable-experimental-prebuilts --package-path ./Plugins/BridgeJS
106+
run: swift test ${{ steps.swiftsyntax-prebuilts.outputs.swift-flags }} --package-path ./Plugins/BridgeJS
94107
env:
95108
BRIDGEJS_OVERRIDE_SWIFT_SYNTAX_VERSION: ${{ matrix.entry.swift-syntax-version }}
96109

@@ -144,8 +157,14 @@ jobs:
144157
- uses: ./.github/actions/install-swift
145158
with:
146159
download-url: https://download.swift.org/development/ubuntu2204/swift-DEVELOPMENT-SNAPSHOT-2026-05-27-a/swift-DEVELOPMENT-SNAPSHOT-2026-05-27-a-ubuntu22.04.tar.gz
160+
- uses: swiftwasm/setup-swift-syntax-prebuilts@v1
161+
id: swiftsyntax-prebuilts
162+
with:
163+
swift-syntax-version: "600.0.1"
147164
- run: make bootstrap
148165
- run: ./Utilities/bridge-js-generate.sh
166+
env:
167+
SWIFT_PACKAGE_FLAGS: ${{ steps.swiftsyntax-prebuilts.outputs.swift-flags }}
149168
- name: Check if BridgeJS generated files are up-to-date
150169
run: |
151170
git config --global --add safe.directory "$GITHUB_WORKSPACE"
@@ -167,10 +186,17 @@ jobs:
167186
- uses: swiftwasm/setup-swiftwasm@v2
168187
id: setup-wasm32-unknown-wasip1-threads
169188
with: { target: wasm32-unknown-wasip1-threads }
170-
- run: ./Utilities/build-examples.sh
189+
- uses: swiftwasm/setup-swift-syntax-prebuilts@v1
190+
id: swiftsyntax-prebuilts
191+
with:
192+
swift-syntax-version: "603.0.2"
193+
- run: |
194+
swift --version
195+
./Utilities/build-examples.sh
171196
env:
172197
SWIFT_SDK_ID_wasm32_unknown_wasip1_threads: ${{ steps.setup-wasm32-unknown-wasip1-threads.outputs.swift-sdk-id }}
173198
SWIFT_SDK_ID_wasm32_unknown_wasip1: ${{ steps.setup-wasm32-unknown-wasip1.outputs.swift-sdk-id }}
199+
SWIFT_PACKAGE_FLAGS: ${{ steps.swiftsyntax-prebuilts.outputs.swift-flags }}
174200
- run: ./Utilities/prepare-gh-pages.sh
175201
- name: Upload static files as artifact
176202
id: deployment

Examples/ActorOnWebWorker/build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/bin/bash
22
set -euxo pipefail
3-
swift package --build-system native --swift-sdk "${SWIFT_SDK_ID_wasm32_unknown_wasip1_threads:-${SWIFT_SDK_ID:-wasm32-unknown-wasip1-threads}}" \
3+
swift package ${SWIFT_PACKAGE_FLAGS:-} --build-system native --swift-sdk "${SWIFT_SDK_ID_wasm32_unknown_wasip1_threads:-${SWIFT_SDK_ID:-wasm32-unknown-wasip1-threads}}" \
44
plugin --allow-writing-to-package-directory \
55
js --use-cdn --output ./Bundle -c release

Examples/Basic/build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
#!/bin/bash
22
set -euxo pipefail
3-
swift package --build-system native --swift-sdk "${SWIFT_SDK_ID_wasm32_unknown_wasip1:-${SWIFT_SDK_ID:-wasm32-unknown-wasip1}}" js --use-cdn -c "${1:-debug}"
3+
swift package ${SWIFT_PACKAGE_FLAGS:-} --build-system native --swift-sdk "${SWIFT_SDK_ID_wasm32_unknown_wasip1:-${SWIFT_SDK_ID:-wasm32-unknown-wasip1}}" js --use-cdn -c "${1:-debug}"

Examples/Embedded/build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/bin/bash
22
set -euxo pipefail
33
package_dir="$(cd "$(dirname "$0")" && pwd)"
4-
swift package --build-system native --package-path "$package_dir" \
4+
swift package ${SWIFT_PACKAGE_FLAGS:-} --build-system native --package-path "$package_dir" \
55
--swift-sdk "${SWIFT_SDK_ID_wasm32_unknown_wasip1:-${SWIFT_SDK_ID:-wasm32-unknown-wasip1}}-embedded" js -c release

Examples/Multithreading/build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/bin/bash
22
set -euxo pipefail
3-
swift package --build-system native --swift-sdk "${SWIFT_SDK_ID_wasm32_unknown_wasip1_threads:-${SWIFT_SDK_ID:-wasm32-unknown-wasip1-threads}}" \
3+
swift package ${SWIFT_PACKAGE_FLAGS:-} --build-system native --swift-sdk "${SWIFT_SDK_ID_wasm32_unknown_wasip1_threads:-${SWIFT_SDK_ID:-wasm32-unknown-wasip1-threads}}" \
44
plugin --allow-writing-to-package-directory \
55
js --use-cdn --output ./Bundle -c release

Examples/OffscrenCanvas/build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/bin/bash
22
set -euxo pipefail
3-
swift package --build-system native --swift-sdk "${SWIFT_SDK_ID_wasm32_unknown_wasip1_threads:-${SWIFT_SDK_ID:-wasm32-unknown-wasip1-threads}}" \
3+
swift package ${SWIFT_PACKAGE_FLAGS:-} --build-system native --swift-sdk "${SWIFT_SDK_ID_wasm32_unknown_wasip1_threads:-${SWIFT_SDK_ID:-wasm32-unknown-wasip1-threads}}" \
44
plugin --allow-writing-to-package-directory \
55
js --use-cdn --output ./Bundle -c release

Examples/PlayBridgeJS/build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/bin/bash
22
set -euxo pipefail
3-
swift package --build-system native --swift-sdk "${SWIFT_SDK_ID_wasm32_unknown_wasip1:-${SWIFT_SDK_ID:-wasm32-unknown-wasip1}}" \
3+
swift package ${SWIFT_PACKAGE_FLAGS:-} --build-system native --swift-sdk "${SWIFT_SDK_ID_wasm32_unknown_wasip1:-${SWIFT_SDK_ID:-wasm32-unknown-wasip1}}" \
44
plugin --allow-writing-to-package-directory \
55
js --use-cdn --output ./Bundle -c "${1:-debug}"

Makefile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
SWIFT_SDK_ID ?=
2+
SWIFT_PACKAGE_FLAGS ?=
23
ifeq ($(JAVASCRIPTKIT_DISABLE_TRACING_TRAIT),1)
34
TRACING_ARGS :=
45
else
@@ -16,7 +17,9 @@ unittest:
1617
echo "SWIFT_SDK_ID is not set. Run 'swift sdk list' and pass a matching SDK, e.g. 'make unittest SWIFT_SDK_ID=<id>'."; \
1718
exit 2; \
1819
}
19-
swift package --build-system native --swift-sdk "$(SWIFT_SDK_ID)" \
20+
swift package $(SWIFT_PACKAGE_FLAGS) \
21+
--build-system native \
22+
--swift-sdk "$(SWIFT_SDK_ID)" \
2023
$(TRACING_ARGS) \
2124
--disable-sandbox \
2225
js test --prelude ./Tests/prelude.mjs -Xnode --expose-gc

Utilities/bridge-js-generate.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
set -euxo pipefail
44

5-
swift build --package-path ./Plugins/BridgeJS --product BridgeJSTool
5+
swift build ${SWIFT_PACKAGE_FLAGS:-} --package-path ./Plugins/BridgeJS --product BridgeJSTool
66

77
./Plugins/BridgeJS/.build/debug/BridgeJSTool generate --project ./tsconfig.json --module-name BridgeJSRuntimeTests --target-dir ./Tests/BridgeJSRuntimeTests --output-dir ./Tests/BridgeJSRuntimeTests/Generated
88
./Plugins/BridgeJS/.build/debug/BridgeJSTool generate --project ./tsconfig.json --module-name BridgeJSGlobalTests --target-dir ./Tests/BridgeJSGlobalTests --output-dir ./Tests/BridgeJSGlobalTests/Generated

0 commit comments

Comments
 (0)