Skip to content

build(deps): bump the all-updates group across 1 directory with 14 up… #3851

build(deps): bump the all-updates group across 1 directory with 14 up…

build(deps): bump the all-updates group across 1 directory with 14 up… #3851

Workflow file for this run

name: CI
on:
push:
branches:
- "**"
pull_request:
branches:
- "**"
workflow_dispatch:
permissions:
contents: read
issues: write
security-events: write
env:
CARGO_TERM_COLOR: always
RUSTFLAGS: "-Dwarnings"
CARGO_ENCODED_RUSTFLAGS: "-Dwarnings"
CARGO_INCREMENTAL: 0
SQLX_OFFLINE: true
NEXT_TELEMETRY_DISABLED: 1
jobs:
fmt:
name: Formatting
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- run: cargo fmt --all -- --check
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- uses: Swatinem/rust-cache@v2
- run: cargo clippy --workspace --all-targets --no-deps -- -D warnings
check:
name: Cargo Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: cargo check --workspace --all-targets --all-features
check-msrv:
name: Cargo Check (MSRV 1.80)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@1.80.0
- uses: Swatinem/rust-cache@v2
- run: cargo check --workspace --all-targets --all-features
audit:
name: Security Audit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Install cargo-audit
run: cargo install cargo-audit --locked
- name: Run cargo audit
run: cargo audit
deny:
name: Cargo Deny
runs-on: ubuntu-latest
env:
CARGO_HOME: ${{ github.workspace }}/.cargo
steps:
- uses: actions/checkout@v4
- name: Clean cargo-deny advisory db cache
run: |
rm -rf "$CARGO_HOME/advisory-dbs" || true
rm -rf "$CARGO_HOME"/advisory-db-empty-* || true
shell: bash
- uses: EmbarkStudios/cargo-deny-action@v2
with:
command: check
arguments: --all-features
manifest-path: ./Cargo.toml
log-level: warn
typos:
name: Spell Check (Typos)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: crate-ci/typos@master
doc:
name: Documentation
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: cargo doc --no-deps --all-features --workspace
env:
RUSTDOCFLAGS: "-D warnings"
udeps:
name: Unused Dependencies
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
- uses: Swatinem/rust-cache@v2
- name: Install cargo-udeps
run: cargo install cargo-udeps --locked
- run: cargo udeps --workspace --all-targets --all-features
machete:
name: Cargo Machete
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Install cargo-machete
run: cargo install cargo-machete --locked
- run: cargo machete
coverage:
name: Code Coverage
runs-on: ubuntu-latest
needs: build-crates
services:
postgres:
image: postgres:16
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: rustok_test
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
DATABASE_URL: postgres://postgres:postgres@localhost:5432/rustok_test
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: llvm-tools-preview
- uses: Swatinem/rust-cache@v2
- name: Install cargo-llvm-cov
run: cargo install cargo-llvm-cov --locked
- run: cargo llvm-cov --workspace --all-features --lcov --output-path lcov.info
build-crates:
name: Build Crates
runs-on: ubuntu-latest
needs: check
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: cargo build -p rustok-core
- run: cargo build -p rustok-commerce
- run: cargo build -p rustok-blog
build-server:
name: Build Server (Loco)
runs-on: ubuntu-latest
needs: build-crates
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: cargo build -p rustok-server
build-storefront:
name: Build Storefront
runs-on: ubuntu-latest
needs: build-crates
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: cargo build -p rustok-storefront
test:
name: Tests (Nextest)
runs-on: ubuntu-latest
needs: build-crates
services:
postgres:
image: postgres:16
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: rustok_test
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
DATABASE_URL: postgres://postgres:postgres@localhost:5432/rustok_test
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Install cargo-nextest
run: cargo install cargo-nextest --locked
- run: cargo nextest run --workspace --all-targets --all-features
doc-tests:
name: Doc Tests
runs-on: ubuntu-latest
needs: build-crates
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: cargo test --workspace --doc --all-features
next-apps:
name: Next.js (${{ matrix.app }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
app:
- apps/next-frontend
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
cache-dependency-path: ${{ matrix.app }}/package.json
- name: Install dependencies
working-directory: ${{ matrix.app }}
run: npm install
- name: Lint
working-directory: ${{ matrix.app }}
run: npm run lint
- name: Typecheck
working-directory: ${{ matrix.app }}
run: npm run typecheck
- name: Build
working-directory: ${{ matrix.app }}
run: npm run build
loco-docs-snapshot:
name: Loco Docs Snapshot Freshness
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Validate Loco upstream snapshot
run: make docs-check-loco
server-library-docs-snapshot:
name: Server Library Docs Snapshot Freshness
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Validate server library docs snapshot
run: make docs-check-server-libs
ci-success:
name: CI Success
runs-on: ubuntu-latest
needs: [fmt, clippy, check, check-msrv, audit, deny, typos, doc, udeps, coverage, build-server, build-storefront, test, doc-tests, next-apps, loco-docs-snapshot, server-library-docs-snapshot]
if: always()
steps:
- name: Check all jobs
run: |
if [[ "${{ needs.fmt.result }}" != "success" ]] || \
[[ "${{ needs.clippy.result }}" != "success" ]] || \
[[ "${{ needs.check.result }}" != "success" ]] || \
[[ "${{ needs.check-msrv.result }}" != "success" ]] || \
[[ "${{ needs.audit.result }}" != "success" ]] || \
[[ "${{ needs.deny.result }}" != "success" ]] || \
[[ "${{ needs.typos.result }}" != "success" ]] || \
[[ "${{ needs.doc.result }}" != "success" ]] || \
[[ "${{ needs.udeps.result }}" != "success" ]] || \
[[ "${{ needs.coverage.result }}" != "success" ]] || \
[[ "${{ needs.build-server.result }}" != "success" ]] || \
[[ "${{ needs.build-storefront.result }}" != "success" ]] || \
[[ "${{ needs.test.result }}" != "success" ]] || \
[[ "${{ needs.doc-tests.result }}" != "success" ]] || \
[[ "${{ needs.next-apps.result }}" != "success" ]] || \
[[ "${{ needs.loco-docs-snapshot.result }}" != "success" ]] || \
[[ "${{ needs.server-library-docs-snapshot.result }}" != "success" ]]; then
echo "One or more jobs failed"
exit 1
fi
echo "All checks passed!"