diff --git a/.github/workflows/clippy.yaml b/.github/workflows/clippy.yaml index 73e1f49a..06afb85a 100644 --- a/.github/workflows/clippy.yaml +++ b/.github/workflows/clippy.yaml @@ -1,6 +1,6 @@ on: push: - branches: [ master, add-riscv-rt ] + branches: [ master ] pull_request: merge_group: @@ -14,9 +14,6 @@ jobs: strategy: matrix: toolchain: [ stable, nightly ] - cargo_flags: - - "--no-default-features" - - "--all-features" include: # Nightly is only for reference and allowed to fail - toolchain: nightly @@ -24,18 +21,39 @@ jobs: runs-on: ubuntu-latest continue-on-error: ${{ matrix.experimental || false }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@master with: toolchain: ${{ matrix.toolchain }} components: clippy - - name: Run clippy - run: cargo clippy --all ${{ matrix.cargo_flags }} -- -D warnings + - name: Run clippy (no features) + run: cargo clippy --all --no-default-features -- -D warnings + - name: Run clippy (all features) + run: cargo clippy --all --all-features -- -D warnings + + # Additonal clippy checks for riscv-rt + clippy-riscv-rt: + strategy: + matrix: + toolchain: [ stable, nightly ] + runs-on: ubuntu-latest + continue-on-error: ${{ matrix.experimental || false }} + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@master + with: + toolchain: ${{ matrix.toolchain }} + components: clippy + - name: Run clippy (s-mode) + run: cargo clippy --package riscv-rt --all --features=s-mode -- -D warnings + - name: Run clippy (single-hart) + run: cargo clippy --package riscv-rt --all --features=single-hart -- -D warnings # Job to check that all the lint checks succeeded clippy-check: needs: - clippy + - clippy-riscv-rt runs-on: ubuntu-latest if: always() steps: diff --git a/riscv-rt/.github/workflows/build.yaml b/.github/workflows/riscv-rt.yaml similarity index 54% rename from riscv-rt/.github/workflows/build.yaml rename to .github/workflows/riscv-rt.yaml index 4c95f06a..b1aeff5a 100644 --- a/riscv-rt/.github/workflows/build.yaml +++ b/.github/workflows/riscv-rt.yaml @@ -4,10 +4,10 @@ on: pull_request: merge_group: -name: Build check +name: Build check (riscv-rt) jobs: - build-riscv: + build: strategy: matrix: # All generated code should be running on stable now, MRSV is 1.59.0 @@ -21,7 +21,6 @@ jobs: example: - empty - multi_core - cargo_flags: [ "--no-default-features", "--all-features" ] include: # Nightly is only for reference and allowed to fail - toolchain: nightly @@ -29,20 +28,24 @@ jobs: runs-on: ubuntu-latest continue-on-error: ${{ matrix.experimental || false }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - 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 }} + - name: Build (no features) + run: RUSTFLAGS="-C link-arg=-Triscv-rt/examples/device.x" cargo build --package riscv-rt --target ${{ matrix.target }} --example ${{ matrix.example }} + - name : Build example (s-mode) + run: RUSTFLAGS="-C link-arg=-Triscv-rt/examples/device.x" cargo build --package riscv-rt --target ${{ matrix.target }} --example ${{ matrix.example }} --features=s-mode + - name : Build example (single-hart) + run: RUSTFLAGS="-C link-arg=-Triscv-rt/examples/device.x" cargo build --package riscv-rt --target ${{ matrix.target }} --example ${{ matrix.example }} --features=single-hart + - name: Build example (all features) + run: RUSTFLAGS="-C link-arg=-Triscv-rt/examples/device.x" cargo build --package riscv-rt --target ${{ matrix.target }} --example ${{ matrix.example }} --all-features # Job to check that all the builds succeeded build-check: needs: - - build-riscv + - build runs-on: ubuntu-latest if: always() steps: diff --git a/.github/workflows/build.yaml b/.github/workflows/riscv.yaml similarity index 63% rename from .github/workflows/build.yaml rename to .github/workflows/riscv.yaml index 44d88d22..ec3984dc 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/riscv.yaml @@ -1,10 +1,10 @@ on: push: - branches: [ master, add-riscv-rt ] + branches: [ master ] 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,52 +13,42 @@ 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 - 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: actions/checkout@v4 - 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 }} + - name: Build (no features) + run: cargo build --package riscv --target ${{ matrix.target }} + - name: Build (all features) + run: cargo build --package riscv --target ${{ matrix.target }} --all-features # 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" ] + os: [ macos-latest, ubuntu-latest, windows-latest ] 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 }} + - name: Build (no features) + run: cargo build --package riscv + - name: Build (all features) + run: cargo build --package riscv --all-features # Job to check that all the builds succeeded build-check: diff --git a/.github/workflows/rustfmt.yaml b/.github/workflows/rustfmt.yaml index 6ee6b39b..8b68d6e7 100644 --- a/.github/workflows/rustfmt.yaml +++ b/.github/workflows/rustfmt.yaml @@ -1,6 +1,6 @@ on: push: - branches: [ master, add-riscv-rt ] + branches: [ master ] pull_request: merge_group: @@ -10,7 +10,7 @@ jobs: rustfmt: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable with: components: rustfmt