Remove workaround for codecov coverage uploads (#247) #706
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: tests | |
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
env: | |
CARGO_TERM_COLOR: always | |
RUSTFLAGS: "-Dwarnings" | |
FORCE_COLOR: 3 | |
jobs: | |
test: | |
name: Test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
save-if: ${{ github.ref == 'refs/heads/main' }} | |
- name: Validate Cargo.lock is up-to-date | |
run: | | |
cargo check --workspace | |
git diff --exit-code | |
- name: Install cargo-llvm-cov | |
uses: taiki-e/install-action@cargo-llvm-cov | |
- name: Run tests with Coverage report enabled | |
run: cargo llvm-cov test --all-features --workspace --codecov --locked --output-path codecov_report.json | |
- name: Upload coverage report to Codecov | |
uses: codecov/codecov-action@v5 | |
with: | |
files: ./codecov_report.json | |
test-other-books: | |
strategy: | |
matrix: | |
include: | |
# Update the refs below once in a while. | |
- repo: rust-lang/book | |
ref: 71352deb20727b4dda9ebfe8182709d5bf17dfea | |
- repo: google/comprehensive-rust | |
ref: 981676d811927f1b50b7654ceb4cc3c10d7fe97b | |
name: Test with ${{ matrix.repo }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
save-if: ${{ github.ref == 'refs/heads/main' }} | |
- name: Install tools | |
run: | | |
sudo apt install gettext | |
# Debug builds are fine and slightly faster. | |
cargo install --debug --path i18n-helpers | |
cargo install --debug --locked --version 0.4.35 mdbook | |
- name: Checkout ${{ matrix.repo }} | |
uses: actions/checkout@v4 | |
with: | |
repository: ${{ matrix.repo }} | |
ref: ${{ matrix.ref }} | |
path: example-book | |
- name: Test extracting text | |
working-directory: example-book | |
run: | | |
MDBOOK_OUTPUT='{"xgettext": {"pot-file": "messages.pot"}}' mdbook build -d po | |
msgfmt -o /dev/null --statistics po/messages.pot | |
fuzz: | |
name: Fuzz test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install nightly Rust | |
run: rustup default nightly | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
# Default is "v0-rust" | |
# Use a separate key to prevent collision with main cache | |
prefix-key: "fuzz" | |
# Cache only on main build | |
save-if: ${{ github.ref == 'refs/heads/main' }} | |
cache-directories: | | |
fuzz/target | |
fuzz/corpus | |
- name: Install cargo-fuzz | |
run: cargo install cargo-fuzz | |
- name: Run group_events fuzzer and minimize corpus | |
run: | | |
cargo fuzz run group_events -- -only_ascii=1 -max_total_time=30 | |
cargo fuzz cmin group_events | |
- name: Run normalize fuzzer and minimize corpus | |
run: | | |
cargo fuzz run normalize -- -only_ascii=1 -max_total_time=30 | |
cargo fuzz cmin normalize | |
- name: Run gettext fuzzer and minimize corpus | |
run: | | |
cargo fuzz run gettext -- -only_ascii=1 -max_total_time=30 | |
cargo fuzz cmin gettext | |
- name: Run xgettext fuzzer and minimize corpus | |
run: | | |
cargo fuzz run xgettext -- -only_ascii=1 -max_total_time=30 | |
cargo fuzz cmin xgettext | |
clippy: | |
name: Clippy | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- uses: Swatinem/rust-cache@v2 | |
- name: Clippy | |
run: cargo clippy --all-targets | |
format: | |
name: Format | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Setup Rust nightly | |
run: rustup default stable | |
- name: Install rustfmt | |
run: rustup component add rustfmt | |
- name: Check Formatting | |
uses: dprint/check@v2.2 |