on: push: branches: [ staging, trying, master ] pull_request: merge_group: name: Continuous integration jobs: # We check that the crate builds and links for all the toolchains and targets. ci-riscv: strategy: matrix: # All generated code should be running on stable now, MRSV is 1.59.0 toolchain: [ stable, nightly, 1.59.0 ] target: - riscv32i-unknown-none-elf - riscv32imc-unknown-none-elf - riscv32imac-unknown-none-elf - riscv64gc-unknown-linux-gnu - riscv64gc-unknown-none-elf cargo_flags: [ "--no-default-features", "--all-features" ] include: # Nightly is only for reference and allowed to fail - toolchain: nightly experimental: true runs-on: ubuntu-latest continue-on-error: ${{ matrix.experimental || false }} steps: - uses: actions/checkout@v3 - uses: dtolnay/rust-toolchain@${{ matrix.toolchain }} with: targets: ${{ matrix.target }} - name: Build library run: cargo build --target ${{ matrix.target }} ${{ matrix.cargo_flags }} # On MacOS, Ubuntu, and Windows, we at least make sure that the crate builds and links. ci-others: strategy: matrix: os: - macos-latest - ubuntu-latest - windows-latest cargo_flags: [ "--no-default-features", "--all-features" ] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 - uses: dtolnay/rust-toolchain@stable - name: Build crate for host OS run: cargo build ${{ matrix.cargo_flags }}