name: Haskell CI 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: matrix: ghcversion: - '8.0.2' - '8.2.2' - '8.4.4' - '8.6.5' - '8.8.1' include: - ghcversion: '8.0.2' cabalversion: '2.4' - ghcversion: '8.2.2' cabalversion: '2.4' - ghcversion: '8.4.4' cabalversion: '2.4' - ghcversion: '8.6.5' cabalversion: '2.4' - ghcversion: '8.8.1' cabalversion: '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.ghcversion }} cabal-install-${{ matrix.cabalversion }} - name: Install dependencies run: | export PATH=/opt/cabal/bin:/opt/ghc/bin:$PATH cabal v2-update cabal v2-build --dependencies-only --enable-tests - name: Build and test run: | export PATH=/opt/cabal/bin:/opt/ghc/bin:$PATH cabal v2-install --enable-tests --run-tests 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 - name: Build and test shell: cmd run: | stack test 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 - name: Build and test run: | ./stack test