From fb804a375d6716f00d1987a2da2b0e4361fd7223 Mon Sep 17 00:00:00 2001
From: John MacFarlane <jgm@berkeley.edu>
Date: Sat, 16 Oct 2021 22:33:56 -0700
Subject: [PATCH] CI: add workflow to test pdf production...

with xelatex, pdflatex, lualatex.
---
 .github/workflows/ci.yml | 56 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index c75fcd213..17b77834e 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -125,6 +125,62 @@ jobs:
           ! grep -q ": *[Ww]arning:" build.log || exit 1
           cabal ${{ matrix.versions.prefix }}test ${{ matrix.versions.cabalopts }} --disable-optimization ${{ matrix.versions.testopts }}
 
+  linux-pdf:
+
+    runs-on: ubuntu-18.04
+    strategy:
+      fail-fast: true
+      matrix:
+        - pdfengine: xelatex
+        - pdfengine: lualatex
+        - pdfengine: pdflatex
+
+    steps:
+    - uses: actions/checkout@v2
+
+    - name: Install recent cabal/ghc
+      uses: haskell/actions/setup@v1
+      with:
+        ghc-version: 8.10.4
+        cabal-version: 3.2
+
+    # needed by memory
+    - name: Install numa
+      run: sudo apt-get install libnuma-dev
+
+    # needed by memory
+    - name: Install texlive
+      run: sudo apt-get install texlive-latex-recommended
+
+    # declare/restore cached things
+    # caching doesn't work for scheduled runs yet
+    # https://github.com/actions/cache/issues/63
+
+    - name: Cache cabal global package db
+      id:   cabal-global
+      uses: actions/cache@v2
+      with:
+        path: |
+          ~/.cabal
+        key: ${{ runner.os }}-8.10.4-3.2-cabal-global-${{ hashFiles('cabal.project') }}
+
+    - name: Cache cabal work
+      id:   cabal-local
+      uses: actions/cache@v2
+      with:
+        path: |
+          dist-newstyle
+        key: ${{ runner.os }}-8.10.4-3.2-cabal-local
+
+    - name: Install dependencies
+      run: |
+          cabal v2-update
+          cabal v2-build --dependencies-only --enable-tests --disable-optimization
+
+    - name: Test pdf creation with pdf-engine
+      run: |
+          cabal v2-run --disable-optimization pandoc -- --pdf-engine=${{ matrix.pdfengine }} -o out.pdf
+
   windows:
 
     runs-on: windows-2019