1# This file is auto-generated
2#
3# To regenerate it run
4#
5#     make github-actions
6#
7name: Linux
8on:
9  push:
10    branches:
11      - master
12      - "3.2"
13  pull_request:
14    branches:
15      - master
16      - "3.2"
17  release:
18    types:
19      - created
20
21jobs:
22  validate-8_10_1:
23    name: validate.sh ghc-8.10.1
24    runs-on: ubuntu-18.04
25    needs: validate-8_8_3
26    container:
27      image: phadej/ghc:8.10.1-bionic
28    steps:
29      # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path
30      - name: Set PATH
31        run: |
32          echo "::add-path::$HOME/.cabal/bin"
33      - name: Install git
34        run: |
35          add-apt-repository -y ppa:git-core/ppa
36          apt-get update
37          apt-get install -y git
38      - name: Install cabal-plan
39        run: |
40          mkdir -p $HOME/.cabal/bin
41          curl -sL https://github.com/haskell-hvr/cabal-plan/releases/download/v0.6.2.0/cabal-plan-0.6.2.0-x86_64-linux.xz > cabal-plan.xz
42          echo "de73600b1836d3f55e32d80385acc055fd97f60eaa0ab68a755302685f5d81bc  cabal-plan.xz" | sha256sum -c -
43          xz -d < cabal-plan.xz > $HOME/.cabal/bin/cabal-plan
44          rm -f cabal-plan.xz
45          chmod a+x $HOME/.cabal/bin/cabal-plan
46      - name: Update Hackage index
47        run: cabal v2-update
48      # https://github.com/actions/checkout/issues/170
49      - uses: actions/checkout@v2
50        # - name: Checkout
51        # - run: |
52        # -   git clone --depth 1 https://github.com/$GITHUB_REPOSITORY.git .
53        # -   git fetch origin $GITHUB_REF:temporary-ci-branch
54        # -   git checkout $GITHUB_SHA || (git fetch && git checkout $GITHUB_SHA)
55      - name: Validate print-config
56        run: sh validate.sh -j 2 -w ghc-8.10.1 -v  -s print-config
57      - name: Validate print-tool-versions
58        run: sh validate.sh -j 2 -w ghc-8.10.1 -v  -s print-tool-versions
59      - name: Validate make-cabal-install-dev
60        run: sh validate.sh -j 2 -w ghc-8.10.1 -v  -s make-cabal-install-dev
61      - name: Validate build
62        run: sh validate.sh -j 2 -w ghc-8.10.1 -v  -s build
63      - name: Validate lib-tests
64        run: sh validate.sh -j 2 -w ghc-8.10.1 -v  -s lib-tests
65      - name: Validate lib-suite
66        run: sh validate.sh -j 2 -w ghc-8.10.1 -v  -s lib-suite
67      - name: Validate cli-tests
68        run: sh validate.sh -j 2 -w ghc-8.10.1 -v  -s cli-tests
69      - name: Validate cli-suite
70        run: sh validate.sh -j 2 -w ghc-8.10.1 -v  -s cli-suite
71  validate-8_8_3:
72    name: validate.sh ghc-8.8.3
73    runs-on: ubuntu-18.04
74    container:
75      image: phadej/ghc:8.8.3-bionic
76    steps:
77      # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path
78      - name: Set PATH
79        run: |
80          echo "::add-path::$HOME/.cabal/bin"
81      - name: Install git
82        run: |
83          add-apt-repository -y ppa:git-core/ppa
84          apt-get update
85          apt-get install -y git
86      - name: Install cabal-plan
87        run: |
88          mkdir -p $HOME/.cabal/bin
89          curl -sL https://github.com/haskell-hvr/cabal-plan/releases/download/v0.6.2.0/cabal-plan-0.6.2.0-x86_64-linux.xz > cabal-plan.xz
90          echo "de73600b1836d3f55e32d80385acc055fd97f60eaa0ab68a755302685f5d81bc  cabal-plan.xz" | sha256sum -c -
91          xz -d < cabal-plan.xz > $HOME/.cabal/bin/cabal-plan
92          rm -f cabal-plan.xz
93          chmod a+x $HOME/.cabal/bin/cabal-plan
94      - name: Update Hackage index
95        run: cabal v2-update
96      # https://github.com/actions/checkout/issues/170
97      - uses: actions/checkout@v2
98        # - name: Checkout
99        # - run: |
100        # -   git clone --depth 1 https://github.com/$GITHUB_REPOSITORY.git .
101        # -   git fetch origin $GITHUB_REF:temporary-ci-branch
102        # -   git checkout $GITHUB_SHA || (git fetch && git checkout $GITHUB_SHA)
103      - name: Validate print-config
104        run: sh validate.sh -j 2 -w ghc-8.8.3 -v --solver-benchmarks -s print-config
105      - name: Validate print-tool-versions
106        run: sh validate.sh -j 2 -w ghc-8.8.3 -v --solver-benchmarks -s print-tool-versions
107      - name: Validate make-cabal-install-dev
108        run: sh validate.sh -j 2 -w ghc-8.8.3 -v --solver-benchmarks -s make-cabal-install-dev
109      - name: Validate build
110        run: sh validate.sh -j 2 -w ghc-8.8.3 -v --solver-benchmarks -s build
111      - name: Validate lib-tests
112        run: sh validate.sh -j 2 -w ghc-8.8.3 -v --solver-benchmarks -s lib-tests
113      - name: Validate lib-suite
114        run: sh validate.sh -j 2 -w ghc-8.8.3 -v --solver-benchmarks -s lib-suite
115      - name: Validate cli-tests
116        run: sh validate.sh -j 2 -w ghc-8.8.3 -v --solver-benchmarks -s cli-tests
117      - name: Validate cli-suite
118        run: sh validate.sh -j 2 -w ghc-8.8.3 -v --solver-benchmarks -s cli-suite
119  validate-8_6_5:
120    name: validate.sh ghc-8.6.5
121    runs-on: ubuntu-18.04
122    needs: validate-8_8_3
123    container:
124      image: phadej/ghc:8.6.5-bionic
125    steps:
126      # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path
127      - name: Set PATH
128        run: |
129          echo "::add-path::$HOME/.cabal/bin"
130      - name: Install git
131        run: |
132          add-apt-repository -y ppa:git-core/ppa
133          apt-get update
134          apt-get install -y git
135      - name: Install cabal-plan
136        run: |
137          mkdir -p $HOME/.cabal/bin
138          curl -sL https://github.com/haskell-hvr/cabal-plan/releases/download/v0.6.2.0/cabal-plan-0.6.2.0-x86_64-linux.xz > cabal-plan.xz
139          echo "de73600b1836d3f55e32d80385acc055fd97f60eaa0ab68a755302685f5d81bc  cabal-plan.xz" | sha256sum -c -
140          xz -d < cabal-plan.xz > $HOME/.cabal/bin/cabal-plan
141          rm -f cabal-plan.xz
142          chmod a+x $HOME/.cabal/bin/cabal-plan
143      - name: Update Hackage index
144        run: cabal v2-update
145      # https://github.com/actions/checkout/issues/170
146      - uses: actions/checkout@v2
147        # - name: Checkout
148        # - run: |
149        # -   git clone --depth 1 https://github.com/$GITHUB_REPOSITORY.git .
150        # -   git fetch origin $GITHUB_REF:temporary-ci-branch
151        # -   git checkout $GITHUB_SHA || (git fetch && git checkout $GITHUB_SHA)
152      - name: Validate print-config
153        run: sh validate.sh -j 2 -w ghc-8.6.5 -v --complete-hackage-tests -s print-config
154      - name: Validate print-tool-versions
155        run: sh validate.sh -j 2 -w ghc-8.6.5 -v --complete-hackage-tests -s print-tool-versions
156      - name: Validate make-cabal-install-dev
157        run: sh validate.sh -j 2 -w ghc-8.6.5 -v --complete-hackage-tests -s make-cabal-install-dev
158      - name: Validate build
159        run: sh validate.sh -j 2 -w ghc-8.6.5 -v --complete-hackage-tests -s build
160      - name: Validate lib-tests
161        run: sh validate.sh -j 2 -w ghc-8.6.5 -v --complete-hackage-tests -s lib-tests
162      - name: Validate lib-suite
163        run: sh validate.sh -j 2 -w ghc-8.6.5 -v --complete-hackage-tests -s lib-suite
164      - name: Validate cli-tests
165        run: sh validate.sh -j 2 -w ghc-8.6.5 -v --complete-hackage-tests -s cli-tests
166      - name: Validate cli-suite
167        run: sh validate.sh -j 2 -w ghc-8.6.5 -v --complete-hackage-tests -s cli-suite
168  validate-8_4_4:
169    name: validate.sh ghc-8.4.4
170    runs-on: ubuntu-18.04
171    needs: validate-8_8_3
172    container:
173      image: phadej/ghc:8.4.4-bionic
174    steps:
175      # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path
176      - name: Set PATH
177        run: |
178          echo "::add-path::$HOME/.cabal/bin"
179      - name: Install git
180        run: |
181          add-apt-repository -y ppa:git-core/ppa
182          apt-get update
183          apt-get install -y git
184      - name: Install cabal-plan
185        run: |
186          mkdir -p $HOME/.cabal/bin
187          curl -sL https://github.com/haskell-hvr/cabal-plan/releases/download/v0.6.2.0/cabal-plan-0.6.2.0-x86_64-linux.xz > cabal-plan.xz
188          echo "de73600b1836d3f55e32d80385acc055fd97f60eaa0ab68a755302685f5d81bc  cabal-plan.xz" | sha256sum -c -
189          xz -d < cabal-plan.xz > $HOME/.cabal/bin/cabal-plan
190          rm -f cabal-plan.xz
191          chmod a+x $HOME/.cabal/bin/cabal-plan
192      - name: Update Hackage index
193        run: cabal v2-update
194      # https://github.com/actions/checkout/issues/170
195      - uses: actions/checkout@v2
196        # - name: Checkout
197        # - run: |
198        # -   git clone --depth 1 https://github.com/$GITHUB_REPOSITORY.git .
199        # -   git fetch origin $GITHUB_REF:temporary-ci-branch
200        # -   git checkout $GITHUB_SHA || (git fetch && git checkout $GITHUB_SHA)
201      - name: Validate print-config
202        run: sh validate.sh -j 2 -w ghc-8.4.4 -v  -s print-config
203      - name: Validate print-tool-versions
204        run: sh validate.sh -j 2 -w ghc-8.4.4 -v  -s print-tool-versions
205      - name: Validate make-cabal-install-dev
206        run: sh validate.sh -j 2 -w ghc-8.4.4 -v  -s make-cabal-install-dev
207      - name: Validate build
208        run: sh validate.sh -j 2 -w ghc-8.4.4 -v  -s build
209      - name: Validate lib-tests
210        run: sh validate.sh -j 2 -w ghc-8.4.4 -v  -s lib-tests
211      - name: Validate lib-suite
212        run: sh validate.sh -j 2 -w ghc-8.4.4 -v  -s lib-suite
213      - name: Validate cli-tests
214        run: sh validate.sh -j 2 -w ghc-8.4.4 -v  -s cli-tests
215      - name: Validate cli-suite
216        run: sh validate.sh -j 2 -w ghc-8.4.4 -v  -s cli-suite
217  validate-8_2_2:
218    name: validate.sh ghc-8.2.2
219    runs-on: ubuntu-18.04
220    needs: validate-8_8_3
221    container:
222      image: phadej/ghc:8.2.2-bionic
223    steps:
224      # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path
225      - name: Set PATH
226        run: |
227          echo "::add-path::$HOME/.cabal/bin"
228      - name: Install git
229        run: |
230          add-apt-repository -y ppa:git-core/ppa
231          apt-get update
232          apt-get install -y git
233      - name: Install cabal-plan
234        run: |
235          mkdir -p $HOME/.cabal/bin
236          curl -sL https://github.com/haskell-hvr/cabal-plan/releases/download/v0.6.2.0/cabal-plan-0.6.2.0-x86_64-linux.xz > cabal-plan.xz
237          echo "de73600b1836d3f55e32d80385acc055fd97f60eaa0ab68a755302685f5d81bc  cabal-plan.xz" | sha256sum -c -
238          xz -d < cabal-plan.xz > $HOME/.cabal/bin/cabal-plan
239          rm -f cabal-plan.xz
240          chmod a+x $HOME/.cabal/bin/cabal-plan
241      - name: Update Hackage index
242        run: cabal v2-update
243      # https://github.com/actions/checkout/issues/170
244      - uses: actions/checkout@v2
245        # - name: Checkout
246        # - run: |
247        # -   git clone --depth 1 https://github.com/$GITHUB_REPOSITORY.git .
248        # -   git fetch origin $GITHUB_REF:temporary-ci-branch
249        # -   git checkout $GITHUB_SHA || (git fetch && git checkout $GITHUB_SHA)
250      - name: Validate print-config
251        run: sh validate.sh -j 2 -w ghc-8.2.2 -v  -s print-config
252      - name: Validate print-tool-versions
253        run: sh validate.sh -j 2 -w ghc-8.2.2 -v  -s print-tool-versions
254      - name: Validate make-cabal-install-dev
255        run: sh validate.sh -j 2 -w ghc-8.2.2 -v  -s make-cabal-install-dev
256      - name: Validate build
257        run: sh validate.sh -j 2 -w ghc-8.2.2 -v  -s build
258      - name: Validate lib-tests
259        run: sh validate.sh -j 2 -w ghc-8.2.2 -v  -s lib-tests
260      - name: Validate lib-suite
261        run: sh validate.sh -j 2 -w ghc-8.2.2 -v  -s lib-suite
262      - name: Validate cli-tests
263        run: sh validate.sh -j 2 -w ghc-8.2.2 -v  -s cli-tests
264      - name: Validate cli-suite
265        run: sh validate.sh -j 2 -w ghc-8.2.2 -v  -s cli-suite
266  validate-8_0_2:
267    name: validate.sh ghc-8.0.2
268    runs-on: ubuntu-18.04
269    needs: validate-8_8_3
270    container:
271      image: phadej/ghc:8.0.2-bionic
272    steps:
273      # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path
274      - name: Set PATH
275        run: |
276          echo "::add-path::$HOME/.cabal/bin"
277      - name: Install git
278        run: |
279          add-apt-repository -y ppa:git-core/ppa
280          apt-get update
281          apt-get install -y git
282      - name: Install cabal-plan
283        run: |
284          mkdir -p $HOME/.cabal/bin
285          curl -sL https://github.com/haskell-hvr/cabal-plan/releases/download/v0.6.2.0/cabal-plan-0.6.2.0-x86_64-linux.xz > cabal-plan.xz
286          echo "de73600b1836d3f55e32d80385acc055fd97f60eaa0ab68a755302685f5d81bc  cabal-plan.xz" | sha256sum -c -
287          xz -d < cabal-plan.xz > $HOME/.cabal/bin/cabal-plan
288          rm -f cabal-plan.xz
289          chmod a+x $HOME/.cabal/bin/cabal-plan
290      - name: Update Hackage index
291        run: cabal v2-update
292      # https://github.com/actions/checkout/issues/170
293      - uses: actions/checkout@v2
294        # - name: Checkout
295        # - run: |
296        # -   git clone --depth 1 https://github.com/$GITHUB_REPOSITORY.git .
297        # -   git fetch origin $GITHUB_REF:temporary-ci-branch
298        # -   git checkout $GITHUB_SHA || (git fetch && git checkout $GITHUB_SHA)
299      - name: Validate print-config
300        run: sh validate.sh -j 2 -w ghc-8.0.2 -v  -s print-config
301      - name: Validate print-tool-versions
302        run: sh validate.sh -j 2 -w ghc-8.0.2 -v  -s print-tool-versions
303      - name: Validate make-cabal-install-dev
304        run: sh validate.sh -j 2 -w ghc-8.0.2 -v  -s make-cabal-install-dev
305      - name: Validate build
306        run: sh validate.sh -j 2 -w ghc-8.0.2 -v  -s build
307      - name: Validate lib-tests
308        run: sh validate.sh -j 2 -w ghc-8.0.2 -v  -s lib-tests
309      - name: Validate lib-suite
310        run: sh validate.sh -j 2 -w ghc-8.0.2 -v  -s lib-suite
311      - name: Validate cli-tests
312        run: sh validate.sh -j 2 -w ghc-8.0.2 -v  -s cli-tests
313      - name: Validate cli-suite
314        run: sh validate.sh -j 2 -w ghc-8.0.2 -v  -s cli-suite
315  validate-7_10_3:
316    name: validate.sh ghc-7.10.3
317    runs-on: ubuntu-18.04
318    needs: validate-8_8_3
319    container:
320      image: phadej/ghc:7.10.3-bionic
321    steps:
322      # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path
323      - name: Set PATH
324        run: |
325          echo "::add-path::$HOME/.cabal/bin"
326      - name: Install git
327        run: |
328          add-apt-repository -y ppa:git-core/ppa
329          apt-get update
330          apt-get install -y git
331      - name: Install cabal-plan
332        run: |
333          mkdir -p $HOME/.cabal/bin
334          curl -sL https://github.com/haskell-hvr/cabal-plan/releases/download/v0.6.2.0/cabal-plan-0.6.2.0-x86_64-linux.xz > cabal-plan.xz
335          echo "de73600b1836d3f55e32d80385acc055fd97f60eaa0ab68a755302685f5d81bc  cabal-plan.xz" | sha256sum -c -
336          xz -d < cabal-plan.xz > $HOME/.cabal/bin/cabal-plan
337          rm -f cabal-plan.xz
338          chmod a+x $HOME/.cabal/bin/cabal-plan
339      - name: Update Hackage index
340        run: cabal v2-update
341      # https://github.com/actions/checkout/issues/170
342      - uses: actions/checkout@v2
343        # - name: Checkout
344        # - run: |
345        # -   git clone --depth 1 https://github.com/$GITHUB_REPOSITORY.git .
346        # -   git fetch origin $GITHUB_REF:temporary-ci-branch
347        # -   git checkout $GITHUB_SHA || (git fetch && git checkout $GITHUB_SHA)
348      - name: Validate print-config
349        run: sh validate.sh -j 2 -w ghc-7.10.3 -v  -s print-config
350      - name: Validate print-tool-versions
351        run: sh validate.sh -j 2 -w ghc-7.10.3 -v  -s print-tool-versions
352      - name: Validate make-cabal-install-dev
353        run: sh validate.sh -j 2 -w ghc-7.10.3 -v  -s make-cabal-install-dev
354      - name: Validate build
355        run: sh validate.sh -j 2 -w ghc-7.10.3 -v  -s build
356      - name: Validate lib-tests
357        run: sh validate.sh -j 2 -w ghc-7.10.3 -v  -s lib-tests
358      - name: Validate lib-suite
359        run: sh validate.sh -j 2 -w ghc-7.10.3 -v  -s lib-suite
360      - name: Validate cli-tests
361        run: sh validate.sh -j 2 -w ghc-7.10.3 -v  -s cli-tests
362      - name: Validate cli-suite
363        run: sh validate.sh -j 2 -w ghc-7.10.3 -v  -s cli-suite
364  validate-7_8_4:
365    name: validate.sh ghc-7.8.4
366    runs-on: ubuntu-18.04
367    needs: validate-8_8_3
368    container:
369      image: phadej/ghc:7.8.4-bionic
370    steps:
371      # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path
372      - name: Set PATH
373        run: |
374          echo "::add-path::$HOME/.cabal/bin"
375      - name: Install git
376        run: |
377          add-apt-repository -y ppa:git-core/ppa
378          apt-get update
379          apt-get install -y git
380      - name: Install cabal-plan
381        run: |
382          mkdir -p $HOME/.cabal/bin
383          curl -sL https://github.com/haskell-hvr/cabal-plan/releases/download/v0.6.2.0/cabal-plan-0.6.2.0-x86_64-linux.xz > cabal-plan.xz
384          echo "de73600b1836d3f55e32d80385acc055fd97f60eaa0ab68a755302685f5d81bc  cabal-plan.xz" | sha256sum -c -
385          xz -d < cabal-plan.xz > $HOME/.cabal/bin/cabal-plan
386          rm -f cabal-plan.xz
387          chmod a+x $HOME/.cabal/bin/cabal-plan
388      - name: Update Hackage index
389        run: cabal v2-update
390      # https://github.com/actions/checkout/issues/170
391      - uses: actions/checkout@v2
392        # - name: Checkout
393        # - run: |
394        # -   git clone --depth 1 https://github.com/$GITHUB_REPOSITORY.git .
395        # -   git fetch origin $GITHUB_REF:temporary-ci-branch
396        # -   git checkout $GITHUB_SHA || (git fetch && git checkout $GITHUB_SHA)
397      - name: Validate print-config
398        run: sh validate.sh -j 2 -w ghc-7.8.4 -v --lib-only -s print-config
399      - name: Validate print-tool-versions
400        run: sh validate.sh -j 2 -w ghc-7.8.4 -v --lib-only -s print-tool-versions
401      - name: Validate build
402        run: sh validate.sh -j 2 -w ghc-7.8.4 -v --lib-only -s build
403      - name: Validate lib-tests
404        run: sh validate.sh -j 2 -w ghc-7.8.4 -v --lib-only -s lib-tests
405      - name: Validate lib-suite
406        run: sh validate.sh -j 2 -w ghc-7.8.4 -v --lib-only -s lib-suite
407  validate-7_6_3:
408    name: validate.sh ghc-7.6.3
409    runs-on: ubuntu-18.04
410    needs: validate-8_8_3
411    container:
412      image: phadej/ghc:7.6.3-xenial
413    steps:
414      # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path
415      - name: Set PATH
416        run: |
417          echo "::add-path::$HOME/.cabal/bin"
418      - name: Install git
419        run: |
420          add-apt-repository -y ppa:git-core/ppa
421          apt-get update
422          apt-get install -y git
423      - name: Install cabal-plan
424        run: |
425          mkdir -p $HOME/.cabal/bin
426          curl -sL https://github.com/haskell-hvr/cabal-plan/releases/download/v0.6.2.0/cabal-plan-0.6.2.0-x86_64-linux.xz > cabal-plan.xz
427          echo "de73600b1836d3f55e32d80385acc055fd97f60eaa0ab68a755302685f5d81bc  cabal-plan.xz" | sha256sum -c -
428          xz -d < cabal-plan.xz > $HOME/.cabal/bin/cabal-plan
429          rm -f cabal-plan.xz
430          chmod a+x $HOME/.cabal/bin/cabal-plan
431      - name: apt-get update
432        run: apt-get update
433      - name: Install dynamic libraries
434        run: apt-get install -y ghc-7.6.3-dyn
435      - name: Update Hackage index
436        run: cabal v2-update
437      # https://github.com/actions/checkout/issues/170
438      - uses: actions/checkout@v2
439        # - name: Checkout
440        # - run: |
441        # -   git clone --depth 1 https://github.com/$GITHUB_REPOSITORY.git .
442        # -   git fetch origin $GITHUB_REF:temporary-ci-branch
443        # -   git checkout $GITHUB_SHA || (git fetch && git checkout $GITHUB_SHA)
444      - name: Validate print-config
445        run: sh validate.sh -j 2 -w ghc-7.6.3 -v --lib-only -s print-config
446      - name: Validate print-tool-versions
447        run: sh validate.sh -j 2 -w ghc-7.6.3 -v --lib-only -s print-tool-versions
448      - name: Validate build
449        run: sh validate.sh -j 2 -w ghc-7.6.3 -v --lib-only -s build
450      - name: Validate lib-tests
451        run: sh validate.sh -j 2 -w ghc-7.6.3 -v --lib-only -s lib-tests
452      - name: Validate lib-suite
453        run: sh validate.sh -j 2 -w ghc-7.6.3 -v --lib-only -s lib-suite
454  validate-8_8_3-old:
455    name: validate.sh old GHCs
456    runs-on: ubuntu-18.04
457    needs: validate-8_8_3
458    container:
459      image: phadej/ghc:8.8.3-xenial
460    steps:
461      # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#add-a-system-path-add-path
462      - name: Set PATH
463        run: |
464          echo "::add-path::$HOME/.cabal/bin"
465      - name: Install git
466        run: |
467          add-apt-repository -y ppa:git-core/ppa
468          apt-get update
469          apt-get install -y git
470      - name: Install cabal-plan
471        run: |
472          mkdir -p $HOME/.cabal/bin
473          curl -sL https://github.com/haskell-hvr/cabal-plan/releases/download/v0.6.2.0/cabal-plan-0.6.2.0-x86_64-linux.xz > cabal-plan.xz
474          echo "de73600b1836d3f55e32d80385acc055fd97f60eaa0ab68a755302685f5d81bc  cabal-plan.xz" | sha256sum -c -
475          xz -d < cabal-plan.xz > $HOME/.cabal/bin/cabal-plan
476          rm -f cabal-plan.xz
477          chmod a+x $HOME/.cabal/bin/cabal-plan
478      - name: apt-get update
479        run: apt-get update
480      - name: Install dynamic libraries
481        run: apt-get install -y ghc-8.8.3-dyn
482      - name: Install extra compilers
483        run: apt-get install -y ghc-7.0.4-dyn ghc-7.2.2-dyn ghc-7.4.2-dyn
484      - name: Update Hackage index
485        run: cabal v2-update
486      # https://github.com/actions/checkout/issues/170
487      - uses: actions/checkout@v2
488        # - name: Checkout
489        # - run: |
490        # -   git clone --depth 1 https://github.com/$GITHUB_REPOSITORY.git .
491        # -   git fetch origin $GITHUB_REF:temporary-ci-branch
492        # -   git checkout $GITHUB_SHA || (git fetch && git checkout $GITHUB_SHA)
493      - name: Validate print-config
494        run: sh validate.sh -j 2 -w ghc-8.8.3 -v --lib-only -s print-config
495      - name: Validate print-tool-versions
496        run: sh validate.sh -j 2 -w ghc-8.8.3 -v --lib-only -s print-tool-versions
497      - name: Validate build
498        run: sh validate.sh -j 2 -w ghc-8.8.3 -v --lib-only -s build
499      - name: Validate lib-tests
500        run: sh validate.sh -j 2 -w ghc-8.8.3 -v --lib-only -s lib-tests
501      - name: Validate lib-suite
502        run: sh validate.sh -j 2 -w ghc-8.8.3 -v --lib-only -s lib-suite
503      - name: Validate lib-suite-extras --extra-hc /opt/ghc/7.0.4/bin/ghc-7.0.4
504        run: sh validate.sh -j 2 -w ghc-8.8.3 -v --lib-only -s lib-suite-extras --extra-hc /opt/ghc/7.0.4/bin/ghc-7.0.4
505      - name: Validate lib-suite-extras --extra-hc /opt/ghc/7.2.2/bin/ghc-7.2.2
506        run: sh validate.sh -j 2 -w ghc-8.8.3 -v --lib-only -s lib-suite-extras --extra-hc /opt/ghc/7.2.2/bin/ghc-7.2.2
507      - name: Validate lib-suite-extras --extra-hc /opt/ghc/7.4.2/bin/ghc-7.4.2
508        run: sh validate.sh -j 2 -w ghc-8.8.3 -v --lib-only -s lib-suite-extras --extra-hc /opt/ghc/7.4.2/bin/ghc-7.4.2
509