Skip to content

test(tip-1020): strengthen invariant tests with error discrimination and coverage gaps #14444

test(tip-1020): strengthen invariant tests with error discrimination and coverage gaps

test(tip-1020): strengthen invariant tests with error discrimination and coverage gaps #14444

Workflow file for this run

name: Lint
permissions: {}
on:
push:
branches: [main]
pull_request:
merge_group:
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: full
RUSTC_WRAPPER: "sccache"
jobs:
clippy:
name: clippy
runs-on: depot-ubuntu-latest-4
timeout-minutes: 30
permissions:
contents: read
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@nightly
with:
components: clippy
- uses: rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
- uses: mozilla-actions/sccache-action@7d986dd989559c6ecdb630a3fd2557667be217ad # v0.0.9
- name: Run clippy
run: cargo clippy --all-targets --all-features --locked
env:
RUSTFLAGS: -D warnings
fmt:
name: fmt
runs-on: depot-ubuntu-latest
timeout-minutes: 30
permissions:
contents: read
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@nightly
with:
components: rustfmt
- run: cargo fmt --all --check
crate-checks:
runs-on: depot-ubuntu-latest-4
timeout-minutes: 60
if: github.event_name == 'push'
permissions:
contents: read
strategy:
fail-fast: false
matrix:
partition: [1, 2]
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@stable
- uses: rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
- uses: mozilla-actions/sccache-action@7d986dd989559c6ecdb630a3fd2557667be217ad # v0.0.9
- uses: taiki-e/install-action@3f67faa728964808f52294a9cd15561b15550b28 # v2.67.19
with:
tool: cargo-hack
- run: cargo hack check --feature-powerset --depth 1 --partition ${{ matrix.partition }}/2
docs:
if: ${{ github.repository == 'tempoxyz/tempo' }}
name: docs
runs-on: depot-ubuntu-latest-4
timeout-minutes: 30
permissions:
contents: read
pages: write
id-token: write
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@nightly
- uses: rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
- uses: mozilla-actions/sccache-action@7d986dd989559c6ecdb630a3fd2557667be217ad # v0.0.9
- name: Build documentation
run: cargo doc --workspace --all-features --no-deps --document-private-items
env:
RUSTDOCFLAGS: --cfg docsrs -D warnings --show-type-layout --generate-link-to-definition --enable-index-page -Zunstable-options
- name: Setup Pages
if: github.ref_name == 'main' && github.event_name == 'push'
uses: actions/configure-pages@v5
with:
enablement: true
- name: Upload artifact
if: github.ref_name == 'main' && github.event_name == 'push'
uses: actions/upload-pages-artifact@v4
with:
path: ./target/doc
deploy-docs:
if: ${{ github.repository == 'tempoxyz/tempo' && github.ref_name == 'main' && github.event_name == 'push' }}
needs: [docs]
runs-on: depot-ubuntu-latest
timeout-minutes: 30
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
typos:
runs-on: depot-ubuntu-latest
timeout-minutes: 30
permissions:
contents: read
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
- uses: crate-ci/typos@3a4d65230db538caabac6e156599c8ba8380ff07 # v1.43.1
deny:
permissions:
contents: read
uses: tempoxyz/ci/.github/workflows/deny.yml@main
zepter:
name: zepter
runs-on: depot-ubuntu-latest
timeout-minutes: 30
permissions:
contents: read
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@stable
- uses: rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
- uses: mozilla-actions/sccache-action@7d986dd989559c6ecdb630a3fd2557667be217ad # v0.0.9
- uses: taiki-e/cache-cargo-install-action@34ce5120836e5f9f1508d8713d7fdea0e8facd6f # v3.0.1
with:
tool: zepter
- name: Eagerly pull dependencies
run: cargo metadata --format-version=1 --locked > /dev/null
- run: zepter run check
no-std:
name: no-std
runs-on: depot-ubuntu-latest
timeout-minutes: 30
permissions:
contents: read
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@stable
with:
target: riscv32imac-unknown-none-elf
- uses: mozilla-actions/sccache-action@7d986dd989559c6ecdb630a3fd2557667be217ad # v0.0.9
- name: Run no_std checks
run: .github/scripts/check_no_std.sh
lint-success:
name: lint success
runs-on: ubuntu-latest
if: always()
permissions: {}
needs:
- clippy
- fmt
- docs
- typos
- deny
- zepter
- no-std
timeout-minutes: 30
steps:
- name: Decide whether the needed jobs succeeded or failed
uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe # v1.2.2
with:
allowed-skips: ${{ github.repository != 'tempoxyz/tempo' && 'docs' || '' }}
jobs: ${{ toJSON(needs) }}