mirror of
https://github.com/jgm/pandoc.git
synced 2026-07-13 12:57:24 +00:00
260 lines
6.8 KiB
YAML
260 lines
6.8 KiB
YAML
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-option=-Werror'
|
|
- ghc: '9.0'
|
|
cabal: 'latest'
|
|
cabalopts: '--ghc-option=-Werror'
|
|
- ghc: '9.2'
|
|
cabal: 'latest'
|
|
cabalopts: '--ghc-option=-Werror'
|
|
- ghc: '9.4'
|
|
cabal: 'latest'
|
|
cabalopts: '--ghc-option=-Werror'
|
|
- ghc: '9.6'
|
|
cabal: 'latest'
|
|
cabalopts: '--ghc-option=-Werror'
|
|
- ghc: '9.8'
|
|
cabal: 'latest'
|
|
cabalopts: '--ghc-option=-Werror'
|
|
- ghc: '9.10'
|
|
cabal: 'latest'
|
|
cabalopts: '--ghc-option=-Werror --ghc-option=-Wno-unused-imports'
|
|
- ghc: '9.12'
|
|
cabal: 'latest'
|
|
cabalopts: '--allow-newer --ghc-option=-Werror --ghc-option=-Wno-unused-imports --ghc-option=-Wno-deriving-typeable'
|
|
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 build ${{ matrix.versions.cabalopts }} --enable-tests --disable-optimization all
|
|
cabal test ${{ matrix.versions.cabalopts }} --disable-optimization 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@v30
|
|
# with:
|
|
# nix_path: nixpkgs=channel:nixos-24.05
|
|
# - 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-2022
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install ghc
|
|
run: |
|
|
ghcup install ghc --set 9.4.4
|
|
ghcup install cabal --set 3.10
|
|
|
|
# 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 }}-stack-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
|
|
|
|
# We no longer run the macos tests, to make CI faster.
|
|
# macos:
|
|
|
|
# runs-on: macos-12
|
|
# 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
|