mirror of
https://github.com/XRPLF/rippled.git
synced 2026-08-21 14:20:56 +00:00
87 lines
2.8 KiB
YAML
87 lines
2.8 KiB
YAML
# Clippy, coverage and documentation for the Rust crates in crates/. Each runs
|
|
# as an independent job on a GitHub-hosted runner, but inside the same container
|
|
# image used to build the crates in the C++/Corrosion path, so the toolchain
|
|
# (and therefore the lints, coverage instrumentation and the cargo cache) matches
|
|
# what production builds use.
|
|
#
|
|
# Rust unit tests are deliberately NOT run here. They run as part of the C++
|
|
# build (reusable-build-test-config.yml), which already compiles the crates on a
|
|
# self-hosted runner, so there is no need to provision a toolchain again.
|
|
name: Rust
|
|
|
|
on:
|
|
workflow_call:
|
|
secrets:
|
|
CODECOV_TOKEN:
|
|
description: "The Codecov token to use for uploading coverage reports."
|
|
required: false
|
|
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
working-directory: crates
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
clippy:
|
|
runs-on: ubuntu-latest
|
|
container: ghcr.io/xrplf/xrpld/nix-ubuntu:sha-fecfc0c
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
|
|
- name: Cache cargo artifacts
|
|
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
|
|
with:
|
|
workspaces: crates
|
|
|
|
- name: Run clippy
|
|
run: cargo clippy --workspace --all-targets --all-features --locked -- -D warnings
|
|
|
|
coverage:
|
|
runs-on: ubuntu-latest
|
|
container: ghcr.io/xrplf/xrpld/nix-ubuntu:sha-fecfc0c
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
|
|
- name: Cache cargo artifacts
|
|
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
|
|
with:
|
|
workspaces: crates
|
|
|
|
- name: Generate coverage report
|
|
run: cargo llvm-cov nextest --workspace --all-features --locked --no-tests=warn --lcov --output-path lcov.info
|
|
|
|
- name: Upload coverage report
|
|
if: ${{ github.repository == 'XRPLF/rippled' }}
|
|
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
|
|
with:
|
|
disable_search: true
|
|
disable_telem: true
|
|
fail_ci_if_error: true
|
|
files: crates/lcov.info
|
|
flags: rust
|
|
plugins: noop
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
verbose: true
|
|
|
|
doc:
|
|
runs-on: ubuntu-latest
|
|
container: ghcr.io/xrplf/xrpld/nix-ubuntu:sha-fecfc0c
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
|
|
- name: Cache cargo artifacts
|
|
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
|
|
with:
|
|
workspaces: crates
|
|
|
|
- name: Build documentation
|
|
env:
|
|
RUSTDOCFLAGS: "-D warnings"
|
|
run: cargo doc --workspace --no-deps --all-features --locked
|