1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- on:
- push:
- branches: [ master, add-riscv-rt ]
- pull_request:
- merge_group:
- name: Build check
- jobs:
- # We check that the crate builds and links for all the toolchains and targets.
- build-riscv:
- strategy:
- matrix:
- # All generated code should be running on stable now, MRSV is 1.59.0
- toolchain: [ stable, nightly, 1.60.0 ]
- package:
- - riscv
- - riscv-rt
- target:
- - riscv32i-unknown-none-elf
- - riscv32imc-unknown-none-elf
- - riscv32imac-unknown-none-elf
- - riscv64imac-unknown-none-elf
- - 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
- - package: riscv-rt
- cargo_flags:
- - "--features=s-mode"
- - "--features=single-hart"
- 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 --package ${{ matrix.package }} --target ${{ matrix.target }} ${{ matrix.cargo_flags }}
-
- # On MacOS, Ubuntu, and Windows, we at least make sure that the crate builds and links.
- build-others:
- strategy:
- matrix:
- os:
- - macos-latest
- - ubuntu-latest
- - windows-latest
- package:
- - riscv
- 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 --package ${{ matrix.package }} ${{ matrix.cargo_flags }}
-
- # Job to check that all the builds succeeded
- build-check:
- needs:
- - build-riscv
- - build-others
- runs-on: ubuntu-latest
- if: always()
- steps:
- - run: jq --exit-status 'all(.result == "success")' <<< '${{ toJson(needs) }}'
|