on: push: branches: [ master, global_asm ] pull_request: merge_group: name: Build check jobs: build-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 - riscv64imac-unknown-none-elf - riscv64gc-unknown-none-elf example: - empty - multi_core 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@master with: toolchain: ${{ matrix.toolchain }} targets: ${{ matrix.target }} - name: Build library run: cargo build --target ${{ matrix.target }} ${{ matrix.cargo_flags }} - name: Build example run: RUSTFLAGS="-C link-arg=-Texamples/device.x" cargo build --target ${{ matrix.target }} --example ${{ matrix.example }} ${{ matrix.cargo_flags }} # Job to check that all the builds succeeded build-check: needs: - build-riscv runs-on: ubuntu-latest if: always() steps: - run: jq --exit-status 'all(.result == "success")' <<< '${{ toJson(needs) }}'