name: Haskell CI on: push: paths: - '*' - '!MANUAL.txt' - '!/doc/*' - '!/tools/*' - '!/linux/*' - '!/macos/*' - '!/windows/*' - '!/man/*' - '!.mailmap' - '!/.circleci/*' - '!.editorconfig' - '!.gitignore' - '!.github/ISSUE_TEMPLATE' - '!.hlint.yaml' - '!.stylish-haskell.yaml' - '!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 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-8.6.4 cabal-install-2.4 - 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 run: | export PATH=/opt/cabal/bin:/opt/ghc/bin:$PATH cabal v2-build --enable-tests - name: Run tests run: | export PATH=/opt/cabal/bin:/opt/ghc/bin:$PATH cabal v2-test # 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, compiling # with -split-sections and stripping the executable. # 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