on: push: branches: [ staging, trying, master ] pull_request: name: Continuous integration jobs: ci-linux: runs-on: ubuntu-20.04 continue-on-error: ${{ matrix.experimental || false }} strategy: matrix: # All generated code should be running on stable now, MRSV is 1.59.0 rust: [nightly, stable, 1.59.0] include: # Nightly is only for reference and allowed to fail - rust: nightly experimental: true steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: ${{ matrix.rust }} override: true - name: Install all Rust targets for ${{ matrix.rust }} run: rustup target install --toolchain=${{ matrix.rust }} x86_64-unknown-linux-gnu riscv32imac-unknown-none-elf riscv64imac-unknown-none-elf riscv64gc-unknown-none-elf - name: Install riscv gcc run: sudo apt-get update && sudo apt-get install -y gcc-riscv64-unknown-elf - name: Run CI script for x86_64-unknown-linux-gnu under ${{ matrix.rust }} run: cargo check --target x86_64-unknown-linux-gnu - name: Run CI script for riscv32imac-unknown-none-elf under ${{ matrix.rust }} run: cargo check --target riscv32imac-unknown-none-elf - name: Run CI script for riscv64imac-unknown-none-elf under ${{ matrix.rust }} run: cargo check --target riscv64imac-unknown-none-elf - name: Run CI script for riscv64gc-unknown-none-elf under ${{ matrix.rust }} run: cargo check --target riscv64gc-unknown-none-elf - name: Run CI script for x86_64-unknown-linux-gnu under ${{ matrix.rust }} with critical-section-single-hart run: cargo check --target x86_64-unknown-linux-gnu --features critical-section-single-hart - name: Run CI script for riscv32imac-unknown-none-elf under ${{ matrix.rust }} with critical-section-single-hart run: cargo check --target riscv32imac-unknown-none-elf --features critical-section-single-hart - name: Run CI script for riscv64imac-unknown-none-elf under ${{ matrix.rust }} with critical-section-single-hart run: cargo check --target riscv64imac-unknown-none-elf --features critical-section-single-hart - name: Run CI script for riscv64gc-unknown-none-elf under ${{ matrix.rust }} with critical-section-single-hart run: cargo check --target riscv64gc-unknown-none-elf --features critical-section-single-hart # On macOS and Windows, we at least make sure that the crate builds and links. build-other: strategy: matrix: os: - macOS-latest - windows-latest runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - name: Build crate for host OS run: cargo build --features critical-section-single-hart