Skip to content

Merge pull request #364 from kkebo/main #455

Merge pull request #364 from kkebo/main

Merge pull request #364 from kkebo/main #455

Workflow file for this run

name: SwiftWasm
on:
push:
branches: ["wasm32-wasi"]
pull_request:
branches: ["wasm32-wasi"]
env:
WASMTIME_VESRION: 32.0.0
jobs:
build:
strategy:
matrix:
target:
- triple: wasm32-unknown-wasi
sdk:
url: https://github.com/swiftwasm/swift/releases/download/swift-wasm-DEVELOPMENT-SNAPSHOT-2025-04-12-a/swift-wasm-DEVELOPMENT-SNAPSHOT-2025-04-12-a-wasm32-unknown-wasi.artifactbundle.zip
checksum: 4b8f1e8346003cf2c3dd5b545a24c54a80d8492a7c719a50500f6056a99cc9d4
artifact-name: swift-format.wasm
other-wasmopt-flags:
- triple: wasm32-unknown-wasip1-threads
sdk:
url: https://github.com/swiftwasm/swift/releases/download/swift-wasm-DEVELOPMENT-SNAPSHOT-2025-04-12-a/swift-wasm-DEVELOPMENT-SNAPSHOT-2025-04-12-a-wasm32-unknown-wasip1-threads.artifactbundle.zip
checksum: 9f756a771ba9433e6f78e476b1c8cb2b55abce0d0d1d755d8be57f0685f4dae2
artifact-name: swift-format-threads.wasm
other-wasmopt-flags: --enable-threads
runs-on: ubuntu-24.04-arm
container: swiftlang/swift:nightly-main-noble@sha256:d9a25c3c670dfb1209c969e236b4e48580a04ca63a920a92f3ac03580a33b9e1
env:
STACK_SIZE: 524288
steps:
- uses: actions/checkout@v4
- name: Install tools
run: apt-get update && apt-get install --no-install-recommends -y wabt binaryen unzip
- run: swift --version
- run: swift sdk install ${{ matrix.target.sdk.url }} --checksum ${{ matrix.target.sdk.checksum }}
- name: Build
run: |
swift build --product swift-format --swift-sdk ${{ matrix.target.triple }} -c release -Xlinker -z -Xlinker stack-size=$STACK_SIZE
wasm-strip .build/release/swift-format.wasm
wasm-opt -Oz --enable-bulk-memory --enable-sign-ext ${{ matrix.target.other-wasmopt-flags }} .build/release/swift-format.wasm -o ${{ matrix.target.artifact-name }}
- name: Upload ${{ matrix.target.artifact-name }}
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.target.artifact-name }}
path: ${{ matrix.target.artifact-name }}
test-binary:
needs: build
strategy:
matrix:
target:
- artifact-name: swift-format.wasm
other-wasmtime-flags:
- artifact-name: swift-format-threads.wasm
other-wasmtime-flags: --wasi threads
runs-on: ubuntu-24.04-arm
container: swiftlang/swift:nightly-main-noble@sha256:d9a25c3c670dfb1209c969e236b4e48580a04ca63a920a92f3ac03580a33b9e1
steps:
- uses: actions/checkout@v4
- name: Install tools
run: apt-get update && apt-get install --no-install-recommends -y xz-utils
- uses: bytecodealliance/actions/wasmtime/setup@v1
with:
version: ${{ env.WASMTIME_VERSION }}
- run: wasmtime -V
- name: Download ${{ matrix.target.artifact-name }}
uses: actions/download-artifact@v4
with:
name: ${{ matrix.target.artifact-name }}
- run: wasmtime --dir . ${{ matrix.target.other-wasmtime-flags }} ${{ matrix.target.artifact-name }} --version
- run: wasmtime --dir . ${{ matrix.target.other-wasmtime-flags }} ${{ matrix.target.artifact-name }} lint -r .
test:
strategy:
matrix:
target:
- triple: wasm32-unknown-wasi
sdk:
url: https://github.com/swiftwasm/swift/releases/download/swift-wasm-DEVELOPMENT-SNAPSHOT-2025-04-12-a/swift-wasm-DEVELOPMENT-SNAPSHOT-2025-04-12-a-wasm32-unknown-wasi.artifactbundle.zip
checksum: 4b8f1e8346003cf2c3dd5b545a24c54a80d8492a7c719a50500f6056a99cc9d4
other-wasmtime-flags:
- triple: wasm32-unknown-wasip1-threads
sdk:
url: https://github.com/swiftwasm/swift/releases/download/swift-wasm-DEVELOPMENT-SNAPSHOT-2025-04-12-a/swift-wasm-DEVELOPMENT-SNAPSHOT-2025-04-12-a-wasm32-unknown-wasip1-threads.artifactbundle.zip
checksum: 9f756a771ba9433e6f78e476b1c8cb2b55abce0d0d1d755d8be57f0685f4dae2
other-wasmtime-flags: --wasi threads
runs-on: ubuntu-24.04-arm
container: swiftlang/swift:nightly-main-noble@sha256:d9a25c3c670dfb1209c969e236b4e48580a04ca63a920a92f3ac03580a33b9e1
env:
STACK_SIZE: 4194304
steps:
- uses: actions/checkout@v4
- name: Install tools
run: apt-get update && apt-get install --no-install-recommends -y xz-utils unzip
- uses: bytecodealliance/actions/wasmtime/setup@v1
with:
version: ${{ env.WASMTIME_VERSION }}
- run: swift --version
- run: wasmtime -V
- run: swift sdk install ${{ matrix.target.sdk.url }} --checksum ${{ matrix.target.sdk.checksum }}
- run: swift build -c release --build-tests --swift-sdk ${{ matrix.target.triple }} -Xlinker -z -Xlinker stack-size=$STACK_SIZE
- run: wasmtime --dir / --wasm max-wasm-stack=$STACK_SIZE ${{ matrix.target.other-wasmtime-flags }} .build/release/swift-formatPackageTests.xctest