name: Rust on: pull_request: branches: main release: types: published env: CARGO_TERM_COLOR: always jobs: bench: runs-on: ubuntu-latest steps: - name: checkout uses: actions/checkout@v4 - uses: actions-rs/toolchain@v1 with: toolchain: nightly - uses: actions/setup-python@v5 with: check-latest: true python-version: 3.13 - name: numpy run: pip install numpy - name: pillow run: pip install pillow - name: block run: ./benches/block.sh - name: bench run: rustup run nightly cargo bench package: runs-on: ubuntu-latest steps: - name: checkout uses: actions/checkout@v4 - name: cleanup run: rm -fr book/ sandbox/ tests/ - name: package run: cargo package - name: login if: github.event_name == 'release' run: cargo login ${{ secrets.CRATES_IO_TOKEN }} - name: publish if: github.event_name == 'release' run: cargo publish test: if: github.event_name != 'release' strategy: fail-fast: false matrix: os: [macos-latest, ubuntu-latest, windows-latest] toolchain: - beta - stable runs-on: ${{ matrix.os }} steps: - name: checkout uses: actions/checkout@v4 - uses: actions-rs/toolchain@v1 with: components: clippy, rustfmt default: true toolchain: ${{ matrix.toolchain }} - name: build run: cargo build --release - name: clippy run: cargo clippy -- -D warnings - name: clippy run: cargo clippy --tests - name: doc run: cargo rustdoc --release -- --html-in-header docs/katex.html - name: fmt run: cargo fmt --all -- --check - name: test run: cargo test --release