name: Build on: push: branches: - master pull_request: {} jobs: # typical build with various feature combinations build: name: Build runs-on: ${{ matrix.os }} continue-on-error: ${{ matrix.experimental }} strategy: matrix: os: [ubuntu-latest] flags: - "" - "--features serde" - "--features plugins" - "--features unchecked" - "--features sync" - "--features no_optimize" - "--features no_float" - "--features only_i32" - "--features only_i64" - "--features no_index" - "--features no_object" - "--features no_function" - "--features no_module" toolchain: [stable] experimental: [false] include: # smoketests for future and experimental toolchains - {toolchain: stable, os: windows-latest, experimental: false, flags: ""} - {toolchain: stable, os: macos-latest, experimental: false, flags: ""} - {toolchain: beta, os: ubuntu-latest, experimental: false, flags: ""} - {toolchain: nightly, os: ubuntu-latest, experimental: true, flags: ""} steps: - name: Checkout uses: actions/checkout@v2 - name: Setup Toolchain uses: actions-rs/toolchain@v1 with: toolchain: ${{matrix.toolchain}} override: true - name: Test uses: actions-rs/cargo@v1 with: command: test args: --all {{matrix.flags}} # no-std builds are a bit more extensive to test no_std_build: name: NoStdBuild runs-on: ${{matrix.os}} # TODO: remove once build works. continue-on-error: true strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest] steps: - name: Checkout uses: actions/checkout@v2 - name: Setup Toolchain uses: actions-rs/toolchain@v1 with: toolchain: nightly override: true - name: Build Project uses: actions-rs/cargo@v1 with: command: build args: --manifest-path=no_std/no_std_test/Cargo.toml