diff --git a/.github/workflows/build_riscv-rt.yaml b/.github/workflows/build_riscv-rt.yaml new file mode 100644 index 00000000..4a7cc4ff --- /dev/null +++ b/.github/workflows/build_riscv-rt.yaml @@ -0,0 +1,53 @@ +on: + push: + branches: [ master, add-riscv-rt ] + 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" + - "features=s-mode" + - "features=single-hart" + - "--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) }}' diff --git a/.github/workflows/build.yaml b/.github/workflows/build_riscv.yaml similarity index 78% rename from .github/workflows/build.yaml rename to .github/workflows/build_riscv.yaml index 44d88d22..db89a96d 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build_riscv.yaml @@ -4,7 +4,7 @@ on: pull_request: merge_group: -name: Build check +name: Build check (riscv) jobs: # We check that the crate builds and links for all the toolchains and targets. @@ -13,9 +13,6 @@ jobs: 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 @@ -27,10 +24,6 @@ jobs: # 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: @@ -39,8 +32,8 @@ jobs: with: toolchain: ${{ matrix.toolchain }} targets: ${{ matrix.target }} - - name: Build library - run: cargo build --package ${{ matrix.package }} --target ${{ matrix.target }} ${{ matrix.cargo_flags }} + - name: Build + run: cargo build --package riscv --target ${{ matrix.target }} ${{ matrix.cargo_flags }} # On MacOS, Ubuntu, and Windows, we at least make sure that the crate builds and links. build-others: @@ -50,15 +43,13 @@ jobs: - 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 }} + run: cargo build --package riscv ${{ matrix.cargo_flags }} # Job to check that all the builds succeeded build-check: diff --git a/.github/workflows/clippy.yaml b/.github/workflows/clippy.yaml index 73e1f49a..9e6afab8 100644 --- a/.github/workflows/clippy.yaml +++ b/.github/workflows/clippy.yaml @@ -14,6 +14,7 @@ jobs: strategy: matrix: toolchain: [ stable, nightly ] + package: [ riscv, riscv-rt ] cargo_flags: - "--no-default-features" - "--all-features" @@ -21,6 +22,10 @@ jobs: # 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: