name: Run unit tests on: pull_request: push: branches: [main] jobs: test: name: Build and Test strategy: matrix: entry: # Ensure that all host can install toolchain, build project, and run tests - { os: macos-11, toolchain: wasm-5.9.1-RELEASE, wasi-backend: Node, xcode: Xcode_13.2.1.app } - { os: macos-12, toolchain: wasm-5.9.1-RELEASE, wasi-backend: Node, xcode: Xcode_13.4.1.app } - { os: macos-13, toolchain: wasm-5.9.1-RELEASE, wasi-backend: Node, xcode: Xcode_14.3.app } - { os: ubuntu-22.04, toolchain: wasm-5.9.1-RELEASE, wasi-backend: Node } # Ensure that test succeeds with all toolchains and wasi backend combinations - { os: ubuntu-20.04, toolchain: wasm-5.7.3-RELEASE, wasi-backend: Node } - { os: ubuntu-20.04, toolchain: wasm-5.8.0-RELEASE, wasi-backend: Node } - { os: ubuntu-20.04, toolchain: wasm-5.7.3-RELEASE, wasi-backend: Wasmer } - { os: ubuntu-20.04, toolchain: wasm-5.8.0-RELEASE, wasi-backend: Wasmer } - { os: ubuntu-20.04, toolchain: wasm-5.9.1-RELEASE, wasi-backend: Wasmer } - { os: ubuntu-20.04, toolchain: wasm-5.7.3-RELEASE, wasi-backend: MicroWASI } - { os: ubuntu-20.04, toolchain: wasm-5.8.0-RELEASE, wasi-backend: MicroWASI } - { os: ubuntu-20.04, toolchain: wasm-5.9.1-RELEASE, wasi-backend: MicroWASI } runs-on: ${{ matrix.entry.os }} env: JAVASCRIPTKIT_WASI_BACKEND: ${{ matrix.entry.wasi-backend }} SWIFT_VERSION: ${{ matrix.entry.toolchain }} steps: - name: Checkout uses: actions/checkout@master with: fetch-depth: 1 - name: Select SDKROOT if: ${{ matrix.entry.xcode }} run: sudo xcode-select -s /Applications/${{ matrix.entry.xcode }} - uses: swiftwasm/setup-swiftwasm@v1 with: swift-version: ${{ matrix.entry.toolchain }} - run: make bootstrap - run: make test - run: make unittest # Skip unit tests with uwasi because its proc_exit throws # unhandled promise rejection. if: ${{ matrix.entry.wasi-backend != 'MicroWASI' }} - name: Check if SwiftPM resources are stale run: | make regenerate_swiftpm_resources git diff --exit-code Sources/JavaScriptKit/Runtime native-build: # Check native build to make it easy to develop applications by Xcode name: Build for native target strategy: matrix: include: - os: macos-11 xcode: Xcode_13.2.1 - os: macos-12 xcode: Xcode_13.3 - os: macos-12 xcode: Xcode_14.0 - os: macos-13 xcode: Xcode_14.3 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 - run: swift build env: DEVELOPER_DIR: /Applications/${{ matrix.xcode }}.app/Contents/Developer/