Skip to content

Remove workaround for codecov coverage uploads (#247) #706

Remove workaround for codecov coverage uploads (#247)

Remove workaround for codecov coverage uploads (#247) #706

Workflow file for this run

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