name: Tests on: push: branches: [main] pull_request: branches: [main] jobs: tests: strategy: matrix: # add any other Typst versions that your package should support typst-version: ["0.12", "0.13"] # the docs don't need to build with all versions supported by the package; # the latest one is enough include: - typst-version: "0.13" doc: 1 runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@v4 - name: Probe runner package cache uses: awalsh128/cache-apt-pkgs-action@v1 with: packages: imagemagick cargo version: 1.0 - name: Install oxipng from crates.io uses: baptiste0928/cargo-install@v3 with: crate: oxipng - name: Install just from crates.io uses: baptiste0928/cargo-install@v3 with: crate: just - name: Install tytanic uses: taiki-e/cache-cargo-install-action@v2 with: tool: tytanic@0.2.2 - name: Setup typst uses: typst-community/setup-typst@v3 with: typst-version: ${{ matrix.typst-version }} - name: Install fonts run: | sudo apt update sudo apt-get install fonts-roboto ./scripts/install-fontawesome ./scripts/install-source-sans typst fonts - name: Uninstall previous local install run: just uninstall - name: Run test suite run: | just install tt run --font-path ~/.fonts --no-fail-fast - name: Archive diffs uses: actions/upload-artifact@v4 if: always() with: name: diffs-typst-${{ matrix.typst-version }} path: | tests/**/diff/*.png tests/**/out/*.png tests/**/ref/*.png retention-days: 5 - name: Build docs if: ${{ matrix.doc }} run: just doc - name: Upload docs uses: actions/upload-artifact@v4 with: name: manual path: docs/manual.pdf