|
1 | 1 | name: CI
|
2 | 2 |
|
3 |
| -# Trigger the workflow on push or pull request, but only for the main branch |
| 3 | +# Trigger the workflow on push or pull request, but only for the master branch |
4 | 4 | on:
|
5 | 5 | pull_request:
|
6 | 6 | push:
|
|
21 | 21 | - "8.6.5"
|
22 | 22 | - "8.8.4"
|
23 | 23 | - "8.10.2"
|
24 |
| - # exclude: |
25 |
| - # - os: macOS-latest |
26 |
| - # ghc: 8.8.4 |
27 |
| - # - os: macOS-latest |
28 |
| - # ghc: 8.6.5 |
29 |
| - # - os: windows-latest |
30 |
| - # ghc: 8.10.2 |
31 |
| - # - os: windows-latest |
32 |
| - # ghc: 8.6.5 |
33 | 24 |
|
34 | 25 | steps:
|
35 | 26 | - uses: actions/checkout@v2
|
@@ -124,39 +115,38 @@ jobs:
|
124 | 115 | stack test --system-ghc
|
125 | 116 |
|
126 | 117 | ghcjs:
|
127 |
| - name: stack / ghcjs 8.4 |
| 118 | + name: cabal / ghcjs 8.4 |
128 | 119 | runs-on: "ubuntu-18.04"
|
129 | 120 |
|
130 | 121 | steps:
|
131 | 122 | - uses: actions/checkout@v2
|
| 123 | + - name: "Setup PATH" |
| 124 | + run: | |
| 125 | + echo "PATH=$HOME/.cabal/bin:$PATH" >> $GITHUB_ENV |
132 | 126 |
|
133 |
| - - name: Install ghcjs and tools |
| 127 | + - name: Install tools |
134 | 128 | run: |
|
135 | 129 | sudo add-apt-repository ppa:hvr/ghcjs
|
136 | 130 | sudo apt-get update -y
|
137 | 131 | sudo apt-get install ghcjs-8.4
|
138 | 132 | sudo apt-get install cabal-install
|
139 |
| - cabal --version |
| 133 | +
|
140 | 134 | # Override cabal.project with the lightweight GHCJS one
|
141 | 135 | cp cabal.ghcjs.project cabal.project
|
142 | 136 | cat cabal.project
|
143 | 137 |
|
144 |
| - export PATH=/opt/ghcjs/8.4.4/bin:$PATH |
145 |
| - export PATH="$HOME/.cabal/bin:$PATH" |
146 | 138 | cabal v2-update
|
147 |
| - ls /opt |
148 |
| - ls /opt/ghcjs/8.4/bin |
149 |
| - # cabal v2-install --ghcjs -w /opt/ghcjs/8.4/bin/ghcjs --ignore-project hspec-discover |
150 | 139 | cabal v2-install -w /opt/ghc/8.4.4/bin/ghc --ignore-project cabal-plan --constraint='cabal-plan ^>=0.6.0.0' --constraint='cabal-plan +exe'
|
151 | 140 | cabal v2-install -w /opt/ghc/8.4.4/bin/ghc --ignore-project hspec-discover
|
152 | 141 |
|
153 | 142 | - name: Build
|
154 | 143 | run: |
|
155 |
| - export PATH=/opt/ghcjs/8.4.4/bin:$PATH |
156 |
| - export PATH="$HOME/.cabal/bin:$PATH" |
157 | 144 | cabal v2-build --ghcjs -w /opt/ghcjs/8.4/bin/ghcjs --enable-tests --enable-benchmarks all
|
158 | 145 |
|
159 | 146 | - name: Run tests
|
160 | 147 | run: |
|
161 |
| - export PATH="$HOME/.cabal/bin:$PATH" |
| 148 | + # cabal v2-test does not work with GHCJS |
| 149 | + # See: https://github.com/haskell/cabal/issues/6175 |
| 150 | + # |
| 151 | + # This invokes cabal-plan to figure out test binaries, and invokes them with node. |
162 | 152 | cabal-plan list-bins '*:test:*' | while read -r line; do testpkg=$(echo "$line" | perl -pe 's/:.*//'); testexe=$(echo "$line" | awk '{ print $2 }'); echo "testing $textexe in package $textpkg"; (cd "$(pkgdir $testpkg)" && nodejs "$testexe".jsexe/all.js); done
|
0 commit comments