on 3feeec2 help sign in
129 lines 4.5 kB history raw
1name: Haskell CI
3on:
4 push:
5 branches:
6 - master
7 pull_request:
9jobs:
10 build:
11 name: GHC ${{ matrix.name }}
12 env:
13 CABAL_REINIT_CONFIG: y
14 LC_ALL: C.UTF-8
16 ENABLE_INSTALL: "n"
18 STACK_UPGRADE: "y"
20 CABAL_CHECK_RELAX: y
21 CABAL_NO_SANDBOX: y
22 CABAL_HACKAGE_MIRROR: hackage.haskell.org:http://hackage.fpcomplete.com
24 PACKCHECK_LOCAL_PATH: "./packcheck.sh"
25 PACKCHECK_GITHUB_URL: "https://raw.githubusercontent.com/harendra-kumar/packcheck"
26 PACKCHECK_GITHUB_COMMIT: "563702bd02c41343dcd3dfcfef0845ca428a9240"
28 BUILD: ${{ matrix.build }}
29 GHCVER: ${{ matrix.ghc_version }}
30 RESOLVER: ${{ matrix.resolver }}
31 CABAL_BUILD_OPTIONS: ${{ matrix.cabal_build_options }} --flag limit-build-mem
32 CABAL_BUILD_TARGETS: ${{ matrix.cabal_build_targets }}
33 CABAL_PROJECT: ${{ matrix.cabal_project }}
34 STACK_BUILD_OPTIONS: ${{ matrix.stack_build_options }}
35 DISABLE_DOCS: ${{ matrix.disable_docs }}
36 SDIST_OPTIONS: ${{ matrix.sdist_options }}
37 DISABLE_SDIST_BUILD: ${{ matrix.disable_sdist_build }}
38 DISABLE_DIST_CHECKS: ${{ matrix.disable_dist_checks }}
40 runs-on: ${{ matrix.runner }}
41 strategy:
42 fail-fast: false
43 matrix:
44 name: [9.0.1, 8.10.4+stack+lts-17.8, 8.10.2+macOS, 8.8.3+inspection+fusion-plugin+Werror, 8.8.4+stack+lts-16.31, 8.6.5+fusion-plugin, 8.6.5+streamk, 8.4.4+debug, doctests]
45 cabal_version: ["3.4"]
46 include:
47 - name: 9.0.1
48 ghc_version: 9.0.1
49 build: cabal-v2
50 cabal_build_options: "--allow-newer=hsc2hs"
51 disable_sdist_build: "y"
52 runner: ubuntu-latest
53 - name: 8.10.4+stack+lts-17.8
54 build: stack
55 resolver: lts-17.8
56 sdist_options: "--ignore-check"
57 stack_build_options: "--flag streamly-benchmarks:-opt"
58 runner: ubuntu-latest
59 - name: 8.10.2+macOS
60 ghc_version: 8.10.2
61 build: cabal-v2
62 disable_sdist_build: "y"
63 runner: macos-latest
64 - name: 8.8.3+inspection+fusion-plugin+Werror
65 ghc_version: 8.8.3
66 build: cabal-v2
67 cabal_project: cabal.project.ci
68 cabal_build_options: "--flag fusion-plugin --flag inspection"
69 runner: ubuntu-latest
70 - name: 8.8.4+stack+lts-16.31
71 build: stack
72 resolver: lts-16.31
73 sdist_options: "--ignore-check"
74 stack_build_options: "--flag streamly-benchmarks:-opt"
75 runner: ubuntu-latest
76 - name: 8.6.5+streamk
77 ghc_version: 8.6.5
78 build: cabal-v2
79 cabal_build_options: "--flag streamk --flag -opt"
80 runner: ubuntu-latest
81 - name: 8.6.5+fusion-plugin
82 ghc_version: 8.6.5
83 build: cabal-v2
84 cabal_build_options: "--flag fusion-plugin"
85 # haddock generation does not work with 8.6.5+fusion-plugin
86 disable_docs: "y"
87 runner: ubuntu-latest
88 - name: 8.4.4+debug
89 ghc_version: 8.4.4
90 build: cabal-v2
91 cabal_build_options: "--flag debug --flag -opt"
92 runner: ubuntu-latest
93 - name: doctests
94 ghc_version: 8.8.3
95 build: cabal-v2
96 cabal_build_options: "--flag doctests"
97 disable_dist_checks: "y"
98 cabal_build_targets: doctests
99 runner: ubuntu-latest
101 steps:
102 - uses: actions/checkout@v2
104 - uses: haskell/actions/setup@v1
105 with:
106 ghc-version: ${{ matrix.ghc_version }}
107 cabal-version: ${{ matrix.cabal_version }}
109 - uses: actions/cache@v1
110 name: Cache ~/.cabal
111 with:
112 path: ~/.cabal
113 key: ${{ runner.os }}-${{ matrix.ghc_version }}-cabal
115 - name: Download packcheck
116 run: |
117 # If a custom stack-yaml is specified, replace the default with that
118 if test -e "$STACK_YAML"; then rm -f stack.yaml && ln -sv $STACK_YAML stack.yaml; else true; fi
119 unset STACK_YAML
121 # Get packcheck if needed
122 CURL=$(which curl)
123 PACKCHECK_URL=${PACKCHECK_GITHUB_URL}/${PACKCHECK_GITHUB_COMMIT}/packcheck.sh
124 if test ! -e "$PACKCHECK_LOCAL_PATH"; then $CURL -sL -o "$PACKCHECK_LOCAL_PATH" $PACKCHECK_URL; fi;
125 chmod +x $PACKCHECK_LOCAL_PATH
127 - name: Run packcheck
128 run: |
129 bash -c "$PACKCHECK_LOCAL_PATH $BUILD"