Merge pull request #45 from Foundation-Devices/jeandudey/sft-4438-upd… #296
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# SPDX-FileCopyrightText: © 2023 Foundation Devices, Inc. <[email protected]> | |
# SPDX-License-Identifier: GPL-3.0-or-later | |
name: Lint | |
on: [push] | |
jobs: | |
is-reuse-compliant: | |
name: Is REUSE compliant? | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: fsfe/reuse-action@v2 | |
is-the-code-compilable: | |
name: Is the code compilable? | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/rust-toolchain | |
with: | |
toolchain: 1.77 | |
- run: cargo check | |
# The foundation-ffi crate won't compile for x86_64 targets because it | |
# requires a nightly Rust compiler for defining a global allocator and | |
# the exception handler. | |
# | |
# The stratum-v1 crate won't compile with all features enabled because | |
# if has 2 mutualy exclusive features: defmt and log. | |
# | |
# So, disable them for now. | |
- run: cargo check --no-default-features --workspace --exclude foundation-ffi | |
- run: cargo check --all-features --workspace --exclude stratum-v1 | |
is-the-code-formatted: | |
name: Is the code formatted? | |
needs: [is-the-code-compilable] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/rust-toolchain | |
with: | |
toolchain: 1.77 | |
components: rustfmt | |
- run: cargo fmt --all -- --check | |
clippy-lints-pass: | |
name: Clippy lints pass? | |
needs: [is-the-code-compilable] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/rust-toolchain | |
with: | |
toolchain: 1.77 | |
components: clippy | |
- run: cargo clippy | |
tests-pass: | |
name: Tests pass? | |
needs: [is-the-code-compilable] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/rust-toolchain | |
with: | |
toolchain: 1.77 | |
- run: cargo test | |
- run: cargo test --no-default-features --workspace --exclude foundation-ffi | |
- run: cargo test --all-features --workspace --exclude stratum-v1 |