Files
rust_workflow_template/.gitea/workflows/lint.yml
T
melfely d90404741d
Crossplatform Linting && Build / Linting (push) Failing after 2m8s
Crossplatform Linting && Build / Build (push) Skipped
fixes: Removed Cross compile against aarch64 from main build
Cross compiling will be moved into an optional "nice to have" rather than something that is required for the tooling to move on.
2026-09-09 11:46:06 -05:00

92 lines
2.3 KiB
YAML

name: Crossplatform Linting && Build
on:
push:
branches: [ main, master ]
pull_request:
jobs:
lint:
name: Linting
runs-on: ubuntu-latest
steps:
- name: Checkout Project
uses: actions/checkout@v5
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- name: Install cargo sort
uses: taiki-e/cache-cargo-install-action@v3 # v3
with:
tool: cargo-sort
- name: Install cargo machete
uses: taiki-e/cache-cargo-install-action@v3 # v3
with:
tool: cargo-machete
- name: Cache cargo dependencies
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-lint-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-lint-
- name: Check formatting
run: cargo fmt --check
- name: Check import sorting
run: cargo sort --grouped --check --check-format
- name: Check for unused dependencies
run: cargo machete
- name: Clippy for Linux x86 (GNU ONLY)
run: |
cargo clippy --target x86_64-unknown-linux-gnu -- -D warnings
build:
name: Build
runs-on: ubuntu-latest
needs: lint
steps:
- name: Checkout Project
uses: actions/checkout@v5
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-unknown-linux-musl
- name: Cache cargo dependencies
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-lint-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-lint-
- name: Build for Linux x86 (GNU and MUSL)
run: |
cargo build --target x86_64-unknown-linux-gnu --release --locked
cargo build --target x86_64-unknown-linux-musl --release --locked