diff options
Diffstat (limited to '.github/workflows/ci.yml')
-rw-r--r-- | .github/workflows/ci.yml | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..b68e3e043 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,114 @@ +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 |