3# Trigger the workflow on push or pull request, but only for the master branch
11 name: ${{ matrix.os }} / ghc ${{ matrix.ghc }}
12 runs-on: ${{ matrix.os }}
24 - uses: actions/checkout@v2
26 - uses: haskell/actions/setup@v1
27 id: setup-haskell-cabal
30 ghc-version: ${{ matrix.ghc }}
31 cabal-version: ${{ matrix.cabal }}
35 cabal configure --enable-tests --enable-benchmarks --test-show-details=direct
38 - uses: actions/cache@v2.1.3
39 name: Cache ~/.cabal/store and dist-newstyle
42 ${{ steps.setup-haskell-cabal.outputs.cabal-store }}
44 key: ${{ runner.os }}-${{ matrix.ghc }}-${{ hashFiles('cabal.project.freeze') }}
46 ${{ runner.os }}-${{ matrix.ghc }}-
50 # Using separate store-dir because default one already has 'ghc-paths' package installed
51 # with hardcoded path to ghcup's GHC path (which it was built with). This leads to failure in
52 # doctest, as it tries to invoke that GHC, and it doesn't exist here.
53 cabal --store-dir /tmp/cabal-store install --ignore-project -j2 doctest --constraint='doctest ^>=0.18'
64 # doctests are broken on GHC 9 due to compiler bug:
65 # https://gitlab.haskell.org/ghc/ghc/-/issues/19460
66 continue-on-error: ${{ matrix.ghc == '9.0.1' }}
68 # Necessary for doctest to be found in $PATH
69 export PATH="$HOME/.cabal/bin:$PATH"
71 # Filter out base-compat-batteries from .ghc.environment.*, as its modules
72 # conflict with those of base-compat.
74 # FIXME: This is an ugly hack. Ultimately, we'll want to use cabal-doctest
75 # (or cabal v2-doctest, if it ever lands) to provide a clean GHC environment.
76 # This might allow running doctests in GHCJS build as well.
77 perl -i -e 'while (<ARGV>) { print unless /package-id\s+(base-compat-batteries)-\d+(\.\d+)*/; }' .ghc.environment.*
79 (cd servant && doctest src)
80 (cd servant-client && doctest src)
81 (cd servant-client-core && doctest src)
82 (cd servant-http-streams && doctest src)
83 (cd servant-docs && doctest src)
84 (cd servant-foreign && doctest src)
85 (cd servant-server && doctest src)
86 (cd servant-machines && doctest src)
87 (cd servant-conduit && doctest src)
88 (cd servant-pipes && doctest src)
91 name: stack / ghc ${{ matrix.ghc }}
92 runs-on: ubuntu-latest
99 - uses: actions/checkout@v2
101 - uses: haskell/actions/setup@v1
102 name: Setup Haskell Stack
104 ghc-version: ${{ matrix.ghc }}
105 stack-version: ${{ matrix.stack }}
107 - uses: actions/cache@v2.1.3
111 key: ${{ runner.os }}-${{ matrix.ghc }}-stack
113 - name: Install dependencies
115 stack build --system-ghc --test --bench --no-run-tests --no-run-benchmarks --only-dependencies
119 stack build --system-ghc --test --bench --no-run-tests --no-run-benchmarks
123 stack test --system-ghc
126 name: ubuntu-latest / ghcjs 8.6
127 runs-on: "ubuntu-latest"
130 - uses: actions/checkout@v2
131 - uses: cachix/install-nix-action@v13
134 trusted-public-keys = ryantrinkle.com-1:JJiAKaRv9mWgpVAz8dwewnZe0AzzEAzPkagE9SP5NWI=1aba6f367982bd6dd78ec2fda75ab246a62d32c5 cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
135 substituters = https://nixcache.reflex-frp.org https://cache.nixos.org/
138 # Override cabal.project with the lightweight GHCJS one
139 cp cabal.ghcjs.project cabal.project
141 nix-shell ghcjs.nix --run "cabal v2-update && cabal v2-freeze"
143 - uses: actions/cache@v2.1.3
144 name: Cache ~/.cabal/store and dist-newstyle
149 key: ${{ runner.os }}-ghcjs8.6-${{ hashFiles('cabal.project.freeze') }}
151 ${{ runner.os }}-ghcjs8.6-
155 nix-shell ghcjs.nix --run "cabal v2-build --ghcjs --enable-tests --enable-benchmarks all"
159 nix-shell ghcjs.nix --run ".github/run-ghcjs-tests.sh"
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list