forked from haskell/cabal
-
Notifications
You must be signed in to change notification settings - Fork 0
118 lines (100 loc) · 3.59 KB
/
macos.yml
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
name: MacOS
# See: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#concurrency.
concurrency:
group: ${{ github.ref }}-${{ github.workflow }}
cancel-in-progress: true
on:
push:
branches:
- master
pull_request:
release:
types:
- created
jobs:
validate:
name: Validate macos-latest ghc-${{ matrix.ghc }}
runs-on: macos-latest
continue-on-error: ${{ matrix.experimental }}
strategy:
matrix:
include:
- ghc: "9.2.1"
cli: true
experimental: true # work to be done
flags: ""
- ghc: "9.0.2"
cli: false
experimental: true # see #7987
- ghc: "9.0.1"
cli: false
experimental: true # see #7988
flags: "--lib-only"
- ghc: "8.10.7"
cli: true
experimental: true # see #7952 and #7988
flags: ""
- ghc: "8.8.4"
cli: true
experimental: false
flags: "--solver-benchmarks"
- ghc: "8.6.5"
cli: true
experimental: false
flags: "--complete-hackage-tests"
- ghc: "8.4.4"
cli: true
experimental: false
flags: ""
- ghc: "8.2.2"
cli: true
experimental: false
flags: ""
- ghc: "8.0.2"
cli: false
experimental: true # see #7988 and #7989
flags: "--lib-only"
steps:
- uses: actions/checkout@v2
- uses: haskell/actions/setup@v1
id: setup-haskell
with:
ghc-version: ${{ matrix.ghc }}
cabal-version: latest # default, keeping for visibility
# See the following link for a breakdown of the following step
# https://github.com/haskell/actions/issues/7#issuecomment-745697160
- uses: actions/cache@v2
with:
path: |
${{ steps.setup-haskell.outputs.cabal-store }}
dist-newstyle
key: ${{ runner.os }}-${{ matrix.ghc }}-${{ github.sha }}
restore-keys: ${{ runner.os }}-${{ matrix.ghc }}-
# The '+exe' constraint below is important, otherwise cabal-install
# might decide to build the library but not the executable which is
# what we need.
- name: Install cabal-plan
run: |
cd $(mktemp -d)
cabal install cabal-plan --constraint='cabal-plan +exe'
echo "$HOME/.cabal/bin" >> $GITHUB_PATH
# Needed by cabal-testsuite/PackageTests/Configure/setup.test.hs
- name: Install Autotools
run: |
brew install automake
- name: Validate print-config
run: sh validate.sh -j 2 -w ghc-${{ matrix.ghc }} -v ${{ matrix.flags }} -s print-config
- name: Validate print-tool-versions
run: sh validate.sh -j 2 -w ghc-${{ matrix.ghc }} -v ${{ matrix.flags }} -s print-tool-versions
- name: Validate build
run: sh validate.sh -j 2 -w ghc-${{ matrix.ghc }} -v ${{ matrix.flags }} -s build
- name: Validate lib-tests
run: sh validate.sh -j 2 -w ghc-${{ matrix.ghc }} -v ${{ matrix.flags }} -s lib-tests
- name: Validate lib-suite
run: sh validate.sh -j 2 -w ghc-${{ matrix.ghc }} -v ${{ matrix.flags }} -s lib-suite
- name: Validate cli-tests
if: matrix.cli == true
run: sh validate.sh -j 2 -w ghc-${{ matrix.ghc }} -v ${{ matrix.flags }} -s cli-tests
- name: Validate cli-suite
if: matrix.cli == true
run: sh validate.sh -j 2 -w ghc-${{ matrix.ghc }} -v ${{ matrix.flags }} -s cli-suite