blob: 9acb538a71e4bd48236e3da076ba970209beef4a (
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
114
115
116
117
118
119
|
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
|