name: CI
on:
push:
branches: [master]
pull_request:
env:
CARGO_BUILD_JOBS: 4
jobs:
test:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install pandoc
run: sudo apt-get update && sudo apt-get install -y pandoc
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- uses: Swatinem/rust-cache@v2
- name: Lint (fmt + clippy)
run: make lint
- name: Check all feature combinations
run: make check-all
- name: Test
run: make test
- name: Test typst-html feature (issue run: make test-typst-html
- name: Test remote-images feature (issue run: make test-remote-images
coverage:
if: github.event_name == 'push'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install pandoc
run: sudo apt-get update && sudo apt-get install -y pandoc
- uses: dtolnay/rust-toolchain@stable
- uses: taiki-e/install-action@cargo-llvm-cov
- uses: Swatinem/rust-cache@v2
with:
prefix-key: coverage
- name: Coverage
run: make coverage
- name: Coverage summary
run: |
{
echo '## Coverage'
echo '```'
cargo llvm-cov report --summary-only
echo '```'
} >> "$GITHUB_STEP_SUMMARY"
- name: HTML report
run: cargo llvm-cov report --html
- name: Upload coverage artifact
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: |
lcov.info
target/llvm-cov/html