pandoc/.github/workflows/ci.yml
2019-09-17 10:01:09 -07:00

114 lines
3 KiB
YAML

name: CI tests
on:
push:
paths:
- '*'
- '.github/workflows/haskell.yml'
- '!MANUAL.txt'
- '!/doc/*'
- '!/tools/*'
- '!/linux/*'
- '!/macos/*'
- '!/windows/*'
- '!/man/*'
- '!AUTHORS.md'
- '!BUGS'
- '!CONTRIBUTING.md'
- '!README.md'
- '!INSTALL.md'
- '!COPYRIGHT'
- '!COPYING.md'
- '!README.template'
- '!RELEASE_CHECKLIST'
- '!appveyor.yml'
- '!changelog'
jobs:
linux:
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
versions:
- ghc: '8.0.2'
cabal: '2.4'
- ghc: '8.2.2'
cabal: '2.4'
- ghc: '8.4.4'
cabal: '2.4'
- ghc: '8.6.5'
cabal: '2.4'
# - ghc: '8.8.1'
# cabal: '3.0'
steps:
- uses: actions/checkout@v1
- name: Install recent cabal/ghc
run: |
sudo add-apt-repository ppa:hvr/ghc
sudo apt-get update
sudo apt-get install ghc-${{ matrix.versions.ghc }} cabal-install-${{ matrix.versions.cabal }}
- name: Install dependencies
run: |
export PATH=/opt/cabal/bin:/opt/ghc/bin:$PATH
cabal v2-update
cabal v2-build --dependencies-only --enable-tests --disable-optimization
- name: Build and test
run: |
export PATH=/opt/cabal/bin:/opt/ghc/bin:$PATH
cabal v2-install --enable-tests --run-tests --disable-optimization 2>&1 | tee build.log
# fail if warnings in local build
! grep -q "[Ww]arning:" build.log
# ARTIFACTS: Currently disabled. The executables are large and
# if we do produce artifacts, we should zip them. We also
# might consider doing this only nightly and stripping.
# The code is included below in case we want to re-enable it.
#
# - name: Install artifact
# run: |
# export PATH=/opt/cabal/bin:/opt/ghc/bin:$PATH
# mkdir -p ./artifacts
# for f in $(find dist-newstyle -name 'pandoc*' -type f -executable); do cp $f ./artifacts/; done
# - uses: actions/upload-artifact@master
# with:
# name: pandoc-linux
# path: ./artifacts/pandoc
windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v1
- name: Install stack
shell: cmd
run: |
choco install haskell-stack
- name: Install dependencies
run: |
stack update
stack test --dependencies-only --fast
- name: Build and test
shell: cmd
run: |
stack test --fast
macos:
runs-on: macOS-latest
steps:
- uses: actions/checkout@v1
- name: Install stack
run: |
curl -L https://get.haskellstack.org/stable/osx-x86_64.tar.gz -o stack.tar.gz
tar xzvf stack.tar.gz --strip-components=1 'stack*/stack'
- name: Install dependencies
run: |
./stack update
./stack test --dependencies-only --fast
- name: Build and test
run: |
./stack test --fast