blob: 071098882fb144288f998360a49f35b668dc8f0b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
name: CI tests
on: [push, pull_request]
# 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
|