diff options
-rw-r--r-- | .github/workflows/rust.yml | 55 | ||||
-rw-r--r-- | rust-bindings/.github/workflows/rust.yml | 68 |
2 files changed, 46 insertions, 77 deletions
diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index ef6e38a7..d047c8c7 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -1,31 +1,68 @@ ---- name: Rust +permissions: + actions: read + on: push: - branches: [main] + branches: [ main ] pull_request: - branches: [main] - -permissions: - contents: read + branches: [ main ] env: CARGO_TERM_COLOR: always - ACTIONS_LINTS_TOOLCHAIN: 1.53.0 + CARGO_PROJECT_FEATURES: "v2021_3" + # Minimum supported Rust version (MSRV) + ACTION_MSRV_TOOLCHAIN: 1.54.0 + # Pinned toolchain for linting + ACTION_LINTS_TOOLCHAIN: 1.56.0 jobs: + build: + runs-on: ubuntu-latest + container: quay.io/coreos-assembler/fcos-buildroot:testing-devel + steps: + - uses: actions/checkout@v2 + - name: Cache Dependencies + uses: Swatinem/rust-cache@ce325b60658c1b38465c06cc965b79baf32c1e72 + - name: Build + run: cargo build --verbose --features=${{ env['CARGO_PROJECT_FEATURES'] }} + - name: Run tests + run: cargo test --verbose --features=${{ env['CARGO_PROJECT_FEATURES'] }} + build-minimum-toolchain: + name: "Build, minimum supported toolchain (MSRV)" + runs-on: ubuntu-latest + container: quay.io/coreos-assembler/fcos-buildroot:testing-devel + steps: + - name: Checkout repository + uses: actions/checkout@v2 + - name: Remove system Rust toolchain + run: dnf remove -y rust cargo + - name: Install toolchain + uses: actions-rs/toolchain@v1 + with: + toolchain: ${{ env['ACTION_MSRV_TOOLCHAIN'] }} + default: true + - name: Cache Dependencies + uses: Swatinem/rust-cache@ce325b60658c1b38465c06cc965b79baf32c1e72 + - name: cargo build + run: cargo build --features=${{ env['CARGO_PROJECT_FEATURES'] }} linting: name: "Lints, pinned toolchain" runs-on: ubuntu-latest + container: quay.io/coreos-assembler/fcos-buildroot:testing-devel steps: - name: Checkout repository uses: actions/checkout@v2 + - name: Remove system Rust toolchain + run: dnf remove -y rust cargo - name: Install toolchain uses: actions-rs/toolchain@v1 with: - toolchain: ${{ env['ACTIONS_LINTS_TOOLCHAIN'] }} + toolchain: ${{ env['ACTION_LINTS_TOOLCHAIN'] }} default: true components: rustfmt, clippy - name: cargo fmt (check) - run: cargo fmt -- --check -l + run: cargo fmt -p ostree -- --check -l + - name: cargo clippy (warnings) + run: cargo clippy -p ostree --features=${{ env['CARGO_PROJECT_FEATURES'] }} -- -D warnings diff --git a/rust-bindings/.github/workflows/rust.yml b/rust-bindings/.github/workflows/rust.yml deleted file mode 100644 index d047c8c7..00000000 --- a/rust-bindings/.github/workflows/rust.yml +++ /dev/null @@ -1,68 +0,0 @@ -name: Rust - -permissions: - actions: read - -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - -env: - CARGO_TERM_COLOR: always - CARGO_PROJECT_FEATURES: "v2021_3" - # Minimum supported Rust version (MSRV) - ACTION_MSRV_TOOLCHAIN: 1.54.0 - # Pinned toolchain for linting - ACTION_LINTS_TOOLCHAIN: 1.56.0 - -jobs: - build: - runs-on: ubuntu-latest - container: quay.io/coreos-assembler/fcos-buildroot:testing-devel - steps: - - uses: actions/checkout@v2 - - name: Cache Dependencies - uses: Swatinem/rust-cache@ce325b60658c1b38465c06cc965b79baf32c1e72 - - name: Build - run: cargo build --verbose --features=${{ env['CARGO_PROJECT_FEATURES'] }} - - name: Run tests - run: cargo test --verbose --features=${{ env['CARGO_PROJECT_FEATURES'] }} - build-minimum-toolchain: - name: "Build, minimum supported toolchain (MSRV)" - runs-on: ubuntu-latest - container: quay.io/coreos-assembler/fcos-buildroot:testing-devel - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - name: Remove system Rust toolchain - run: dnf remove -y rust cargo - - name: Install toolchain - uses: actions-rs/toolchain@v1 - with: - toolchain: ${{ env['ACTION_MSRV_TOOLCHAIN'] }} - default: true - - name: Cache Dependencies - uses: Swatinem/rust-cache@ce325b60658c1b38465c06cc965b79baf32c1e72 - - name: cargo build - run: cargo build --features=${{ env['CARGO_PROJECT_FEATURES'] }} - linting: - name: "Lints, pinned toolchain" - runs-on: ubuntu-latest - container: quay.io/coreos-assembler/fcos-buildroot:testing-devel - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - name: Remove system Rust toolchain - run: dnf remove -y rust cargo - - name: Install toolchain - uses: actions-rs/toolchain@v1 - with: - toolchain: ${{ env['ACTION_LINTS_TOOLCHAIN'] }} - default: true - components: rustfmt, clippy - - name: cargo fmt (check) - run: cargo fmt -p ostree -- --check -l - - name: cargo clippy (warnings) - run: cargo clippy -p ostree --features=${{ env['CARGO_PROJECT_FEATURES'] }} -- -D warnings |