102 lines
2.8 KiB
YAML
102 lines
2.8 KiB
YAML
name: Build and test
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
branches: [main]
|
|
|
|
jobs:
|
|
swift-test-macos:
|
|
name: Build and test on ${{ matrix.os }} with Swift ${{ matrix.swift }}, Xcode ${{ matrix.xcode }}
|
|
timeout-minutes: 40
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- os: macos-14
|
|
xcode: "15.4"
|
|
swift: "6.0"
|
|
swift-install:
|
|
dir: "swift-6.0-branch/xcode"
|
|
version: "swift-6.0-DEVELOPMENT-SNAPSHOT-2024-06-19-a"
|
|
- os: macos-14
|
|
xcode: "15.4"
|
|
swift: "5.10"
|
|
- os: macos-13
|
|
xcode: "15.2"
|
|
swift: "5.9.2"
|
|
|
|
steps:
|
|
- name: Checkout the repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Select Xcode version
|
|
run: sudo xcode-select --switch /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer
|
|
|
|
- name: Install Swift ${{ matrix.swift }}
|
|
if: ${{ matrix.swift-install != null }}
|
|
run: bash ci/mac/install-swift.bash
|
|
env:
|
|
SWIFT_DIR: ${{ matrix.swift-install.dir }}
|
|
SWIFT_VERSION: ${{ matrix.swift-install.version }}
|
|
|
|
- name: Check Swift version
|
|
run: swift --version
|
|
|
|
- name: Install dependencies for macOS
|
|
run: brew bundle
|
|
|
|
- name: Build the project
|
|
run: swift build --build-tests
|
|
|
|
- name: Run tests
|
|
run: swift test
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
swift-test-linux:
|
|
name: Build and test on Linux with Swift ${{ matrix.swift.version }}
|
|
timeout-minutes: 40
|
|
runs-on: ubuntu-22.04
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- swift:
|
|
dir: "swift-6.0-branch/ubuntu2204"
|
|
version: "swift-6.0-DEVELOPMENT-SNAPSHOT-2024-06-08-a"
|
|
- swift:
|
|
dir: "swift-5.10-release/ubuntu2204"
|
|
version: "swift-5.10-RELEASE"
|
|
- swift:
|
|
dir: "swift-5.9.2-release/ubuntu2204"
|
|
version: "swift-5.9.2-RELEASE"
|
|
steps:
|
|
- name: Checkout the repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install Swift toolchain
|
|
uses: ./.github/actions/install-swift
|
|
with:
|
|
swift-dir: ${{ matrix.swift.dir }}
|
|
swift-version: ${{ matrix.swift.version }}
|
|
|
|
- name: Check Swift version
|
|
run: swift --version
|
|
|
|
- name: Install dependent packages for WebAssembly
|
|
run: >
|
|
sudo apt-get update && sudo apt-get install -y
|
|
wabt binaryen
|
|
|
|
- name: Install WebAssembly runtime
|
|
uses: bytecodealliance/actions/wasmtime/setup@v1
|
|
|
|
- name: Build the project
|
|
run: swift build --build-tests
|
|
|
|
- name: Run tests
|
|
run: swift test
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|