@@ -8,7 +8,7 @@ on:
11− name: GHC ${{ matrix.name }}
11+ name: GHC ${{matrix.name}}
13 # packcheck environment variables
13 # packcheck environment variables
14 LC_ALL: C.UTF-8
14 LC_ALL: C.UTF-8
@@ -47,106 +47,115 @@ jobs:
47 DOCTEST: ${{ matrix.doctest }}
47 DOCTEST: ${{ matrix.doctest }}
49 runs-on: ${{ matrix.runner }}
49 runs-on: ${{ matrix.runner }}
50+ continue-on-error: ${{ matrix.ignore_error }}
51− fail-fast: false
52+ fail-fast: true
54+ # The order is important to optimize fail-fast.
56+ - 8.10.7-sdist-fusion-inspection-Werror
54− - 9.2.1
57+ - 9.2.1-docspec
58− - 8.10.7+linux+coverage+cabal
58+ - 8.10.7-coverage
60− - 8.8.4
60+ # Note: if cabal.project is not specified benchmarks and tests won't
61− - 8.8.4+inspection+fusion-plugin+Werror
61+ # run. But we need at least one test where we test without
62− - 8.6.5+fusion-plugin
62+ # cabal.project because that is how hackage would build it.
66+ runner: ubuntu-latest
68+ cabal_version: latest
69+ cabal_project: cabal.project.ghc-head
70+ disable_sdist_build: "y"
66 - name: 9.2.1
72 - name: 9.2.1
67 ghc_version: 9.2.1
73 ghc_version: 9.2.1
74+ runner: ubuntu-latest
68− build: cabal-v2
75+ build: cabal
69− cabal_build_options: "--allow-newer=hsc2hs"
76+ cabal_project: cabal.project
70 disable_sdist_build: "y"
78 disable_sdist_build: "y"
80+ - name: 9.2.1-docspec
71 runner: ubuntu-latest
82 runner: ubuntu-latest
72 cabal_version: 3.6
84 cabal_version: 3.6
73 - name: 9.0.1
86 - name: 9.0.1
74 ghc_version: 9.0.1
87 ghc_version: 9.0.1
88+ runner: ubuntu-latest
75− build: cabal-v2
89+ build: cabal
76− cabal_build_options: "--allow-newer=hsc2hs"
90+ cabal_version: 3.6
91+ cabal_project: cabal.project
77 disable_sdist_build: "y"
92 disable_sdist_build: "y"
94+ - name: 8.10.7-sdist-stack
78 runner: ubuntu-latest
95 runner: ubuntu-latest
81 build: stack
96 build: stack
82− resolver: lts-18.18
97+ resolver: lts-18.23
83 stack_yaml: stack.yaml
98 stack_yaml: stack.yaml
84 sdist_options: "--ignore-check"
99 sdist_options: "--ignore-check"
85 stack_build_options: "--flag streamly-benchmarks:-opt"
100 stack_build_options: "--flag streamly-benchmarks:-opt"
86− runner: ubuntu-latest
87− cabal_version: 3.4
101+ cabal_version: 3.6
88− - name: 8.10.7+macOS
103+ - name: 8.10.7-macos
89 ghc_version: 8.10.7
104 ghc_version: 8.10.7
91− disable_sdist_build: "y"
92 runner: macos-latest
105 runner: macos-latest
93− cabal_version: 3.4
107+ cabal_version: 3.6
108+ cabal_project: cabal.project
109+ disable_sdist_build: "y"
94− - name: 8.10.7+linux+coverage+cabal
111+ - name: 8.10.7-coverage
95 ghc_version: 8.10.7
112 ghc_version: 8.10.7
113+ runner: ubuntu-latest
96 coverage: "y"
114 coverage: "y"
117+ - name: 8.10.7-sdist-fusion-inspection-Werror
97 runner: ubuntu-latest
119 runner: ubuntu-latest
99− - name: 8.8.4+inspection+fusion-plugin+Werror
101− build: cabal-v2
120+ build: cabal
102 cabal_project: cabal.project.Werror
122 cabal_project: cabal.project.Werror
103 cabal_build_options: "--flag fusion-plugin --flag inspection"
123 cabal_build_options: "--flag fusion-plugin --flag inspection"
104− runner: ubuntu-latest
124+ ignore_error: false
106− - name: 8.8.4
125+ - name: 8.8.4-sdist-fusion
107 ghc_version: 8.8.4
126 ghc_version: 8.8.4
127+ runner: ubuntu-latest
108 build: cabal
128 build: cabal
109 cabal_project: cabal.project
130 cabal_project: cabal.project
110− cabal_build_options: "--flag -opt"
131+ cabal_build_options: "--flag fusion-plugin"
111− runner: ubuntu-latest
132+ ignore_error: false
113− - name: 8.6.5+streamk
133+ - name: 8.6.5-sdist-streamk-unoptimized
114 ghc_version: 8.6.5
134 ghc_version: 8.6.5
135+ runner: ubuntu-latest
115− build: cabal-v2
136+ build: cabal
116 cabal_project: cabal.project
138 cabal_project: cabal.project
117 cabal_build_options: "--flag streamk --flag -opt"
139 cabal_build_options: "--flag streamk --flag -opt"
118− runner: ubuntu-latest
140+ ignore_error: false
119− cabal_version: 3.4
141+ - name: 8.6.5-sdist-debug-unoptimized
120− - name: 8.6.5+fusion-plugin
121 ghc_version: 8.6.5
142 ghc_version: 8.6.5
123− cabal_project: cabal.project
124− cabal_build_options: "--flag fusion-plugin"
125− # haddock generation does not work with 8.6.5+fusion-plugin
127 runner: ubuntu-latest
143 runner: ubuntu-latest
131− build: cabal-v2
144+ build: cabal
132 cabal_project: cabal.project
146 cabal_project: cabal.project
133 cabal_build_options: "--flag debug --flag -opt"
147 cabal_build_options: "--flag debug --flag -opt"
134 runner: ubuntu-latest
151 runner: ubuntu-latest
135− cabal_version: 3.4
152+ build: cabal
136− - name: 8.10.7+docspec
153+ cabal_version: 3.6
137− ghc_version: 8.10.7
154+ ignore_error: false
139− runner: ubuntu-latest
143 - uses: actions/checkout@v2
157 - uses: actions/checkout@v2
145− - uses: haskell/actions/setup@v1
147− ghc-version: ${{ matrix.ghc_version }}
148− cabal-version: ${{ matrix.cabal_version }}
150 - uses: actions/cache@v1
159 - uses: actions/cache@v1
151 name: Cache ~/.cabal
160 name: Cache ~/.cabal
@@ -162,6 +171,23 @@ jobs:
162 if test ! -e "$PACKCHECK_LOCAL_PATH"; then $CURL -sL -o "$PACKCHECK_LOCAL_PATH" $PACKCHECK_URL; fi;
171 if test ! -e "$PACKCHECK_LOCAL_PATH"; then $CURL -sL -o "$PACKCHECK_LOCAL_PATH" $PACKCHECK_URL; fi;
163 chmod +x $PACKCHECK_LOCAL_PATH
172 chmod +x $PACKCHECK_LOCAL_PATH
176+ "Linux x86_64") GHCUP_ARCH="x86_64-linux" ;;
177+ "Darwin x86_64") GHCUP_ARCH="x86_64-apple-darwin" ;;
178+ *) echo "Unknown OS/Arch: $os"; exit 1;;
181+ $CURL -sL -o ./ghcup https://downloads.haskell.org/~ghcup/0.1.17.4/${GHCUP_ARCH}-ghcup-0.1.17.4
183+ if test "$GHCVER" = "head"
185+ ./ghcup install ghc -u https://gitlab.haskell.org/ghc/ghc/-/jobs/artifacts/master/raw/ghc-x86_64-deb10-linux-integer-simple.tar.xz?job=validate-x86_64-linux-deb10-integer-simple head
187+ ./ghcup install ghc $GHCVER
189+ ./ghcup set ghc $GHCVER
165 - name: Run tests
191 - name: Run tests
167 if test -n "$DOCTEST"
193 if test -n "$DOCTEST"