name: CI tests on: push: branches: - '*' - '!rc/*' - '!djot' paths-ignore: - 'doc/*.md' - 'MANUAL.txt' - '*.md' - '.cirrus.yml' - 'RELEASE_CHECKLIST' - 'BUGS' - 'README.template' - 'hie.yaml' - '*.nix' - 'tools/**' - 'linux/**' - 'macos/**' - 'windows/**' - 'man/**' pull_request: paths-ignore: - 'doc/*.md' - 'MANUAL.txt' - '*.md' - 'RELEASE_CHECKLIST' - 'BUGS' - 'README.template' - 'hie.yaml' - '*.nix' - 'tools/**' - 'linux/**' - 'macos/**' - 'windows/**' - 'man/**' permissions: contents: read jobs: # linux: # # runs-on: ubuntu-latest # strategy: # fail-fast: true # matrix: # versions: # - ghc: '8.10' # cabal: 'latest' # cabalopts: '' # - ghc: '9.0' # cabal: 'latest' # cabalopts: '' # - ghc: '9.2' # cabal: 'latest' # cabalopts: '' # - ghc: '9.4' # cabal: 'latest' # cabalopts: '' # - ghc: '9.6' # cabal: 'latest' # cabalopts: '' # steps: # - uses: actions/checkout@v4 # # # needed by memory # - name: Install numa # run: sudo apt-get install libnuma-dev # # - name: Workaround runner image issue # # https://github.com/actions/runner-images/issues/7061 # run: sudo chown -R $USER /usr/local/.ghcup # # - name: Install cabal/ghc # run: | # ghcup install ghc --set ${{ matrix.versions.ghc }} # ghcup install cabal --set ${{ matrix.versions.cabal }} # # # declare/restore cached things # # - name: Cache cabal global package db # id: cabal-global # uses: actions/cache@v4 # with: # path: | # ~/.local/state/cabal # key: ${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-global-${{ secrets.CACHE_VERSION }} # # - name: Cache cabal work # id: cabal-local # uses: actions/cache@v4 # with: # path: | # dist-newstyle # key: ${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-local-${{ secrets.CACHE_VERSION }} # # - name: Update cabal # run: | # cabal update # # - name: Build and test # run: | # cabal test ${{ matrix.versions.cabalopts }} --enable-tests --disable-optimization --ghc-options=-Werror all # # linux-stack: # # runs-on: ubuntu-latest # strategy: # fail-fast: true # steps: # - uses: actions/checkout@v4 # # # needed by memory # - name: Install numa # run: sudo apt-get install libnuma-dev # # # declare/restore cached things # - name: Cache stack global package db # id: stack-global # uses: actions/cache@v4 # with: # path: | # ~/.stack # key: ${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-stack-global-${{ secrets.CACHE_VERSION }} # # - name: Cache stack work # id: stack-local # uses: actions/cache@v4 # with: # path: | # .stack-work # key: ${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-stack-local-${{ secrets.CACHE_VERSION }} # # - name: Build and test # run: | # stack test --fast # # linux-nix-cabal: # # runs-on: ubuntu-latest # strategy: # fail-fast: true # steps: # - uses: actions/checkout@v4 # - uses: cachix/install-nix-action@v26 # with: # nix_path: nixpkgs=channel:nixos-unstable # - name: Cache cabal global package db # id: cabal-global # uses: actions/cache@v4 # with: # path: | # ~/.local/state/cabal # key: ${{ runner.os }}-nix-cabal-global-${{ secrets.CACHE_VERSION }} # - name: Cache cabal work # id: cabal-local # uses: actions/cache@v4 # with: # path: | # dist-newstyle # key: ${{ runner.os }}-nix-cabal-local-${{ secrets.CACHE_VERSION }} # - run: | # nix-shell --run "cabal update && cabal test --enable-tests --disable-optimization --ghc-options=-Werror all" windows: runs-on: windows-2019 steps: - uses: actions/checkout@v4 - name: Install ghc run: | ghcup install ghc --set 9.4.4 # declare/restore cached things - name: Cache cabal global package db id: cabal-global uses: actions/cache@v4 with: path: | C:\cabal\store key: ${{ runner.os }}-appdata-cabal-${{ hashFiles('cabal.project') }}-${{ secrets.CACHE_VERSION }} - name: Cache cabal work id: cabal-local uses: actions/cache@v4 with: path: | dist-newstyle key: ${{ runner.os }}-cabal-work-${{ hashFiles('cabal.project') }}-${{ secrets.CACHE_VERSION }} - name: Build and test run: | cabal update cabal test ${{ matrix.versions.cabalopts }} --enable-tests --disable-optimization --ghc-options=-Werror all D:\a\pandoc\pandoc\dist-newstyle\build\x86_64-windows\ghc-9.4.4\pandoc-3.1.13\t\test-pandoc\noopt\build\test-pandoc\test-pandoc.exe --emulate --version D:\a\pandoc\pandoc\dist-newstyle\build\x86_64-windows\ghc-9.4.4\pandoc-3.1.13\t\test-pandoc\noopt\build\test-pandoc\test-pandoc.exe --emulate README.md # We no longer run the macos tests, to make CI faster. # macos: # runs-on: macos-11 # strategy: # fail-fast: true # matrix: # versions: # - ghc: '8.8.4' # cabal: '3.2' # steps: # - uses: actions/checkout@v4 # - name: Install cabal/ghc # run: | # ghcup install ghc --set ${{ matrix.versions.ghc }} # ghcup install cabal ${{ matrix.versions.cabal }} # # declare/restore cached things # - name: Cache cabal global package db # id: cabal-global # uses: actions/cache@v4 # with: # path: | # ~/.cabal # key: ${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-global-${{ secrets.CACHE_VERSION }} # - name: Cache cabal work # id: cabal-local # uses: actions/cache@v4 # with: # path: | # dist-newstyle # key: ${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-local-${{ secrets.CACHE_VERSION }} # - name: Install dependencies # run: | # cabal v2-update # cabal v2-build --dependencies-only --enable-tests --disable-optimization # - name: Build and test # run: | # cabal v2-build --enable-tests --disable-optimization 2>&1 | tee build.log # # fail if warnings in local build # ! grep -q ": *[Ww]arning:" build.log || exit 1 # cabal v2-test --disable-optimization --test-option=--hide-successes --test-option=--ansi-tricks=false