summaryrefslogtreecommitdiff
path: root/deps/discord-haskell/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to 'deps/discord-haskell/.github/workflows')
-rw-r--r--deps/discord-haskell/.github/workflows/main.yml43
1 files changed, 31 insertions, 12 deletions
diff --git a/deps/discord-haskell/.github/workflows/main.yml b/deps/discord-haskell/.github/workflows/main.yml
index aec9070..0d5aa65 100644
--- a/deps/discord-haskell/.github/workflows/main.yml
+++ b/deps/discord-haskell/.github/workflows/main.yml
@@ -14,8 +14,11 @@ jobs:
# and use fromJson in the next job to construct the matrix.
# This dynamic approach means we don't have to update the CI file when we
# change supported GHC versions.
+ #
+ # Only the Cabal build job will use the generated matrix, since Stack has a
+ # pinned GHC version in the stack.yaml file.
generate-matrix:
- name: Generate GHC build matrix
+ name: Generate GHC build matrix for Cabal
runs-on: ubuntu-latest
outputs:
ghc-matrix: ${{ steps.set-ghc-matrix.outputs.versions }}
@@ -25,17 +28,17 @@ jobs:
- name: Parse the cabal tested-with stanza
id: parse
run: |
- echo "::set-output name=tested-with-versions::$(runghc .github/workflows/parseVersions.hs)"
+ echo "tested-with-versions=$(runghc .github/workflows/parseVersions.hs)" >> $GITHUB_OUTPUT
- name: Set the GHC matrix for the next job
id: set-ghc-matrix
# We use single quotes here, since the output from the previous step
# will not have escaped double quotes, and it's just easier to use single
# quotes on the outside than try to escape the inner double quotes.
- run: echo '::set-output name=versions::{"ghc-version":${{ steps.parse.outputs.tested-with-versions }}}'
+ run: echo 'versions={"ghc-version":${{ steps.parse.outputs.tested-with-versions }}}' >> $GITHUB_OUTPUT
- build:
- name: Build Check
+ build-cabal:
+ name: Cabal Build Check
needs: generate-matrix
runs-on: ubuntu-latest
strategy:
@@ -48,14 +51,16 @@ jobs:
steps:
- uses: actions/checkout@v2
+ # Although the GitHub Action Runner comes with pre-installed Cabal and GHC,
+ # we'll only use Cabal out of the box since that is independent of
+ # the GHC version. For GHC, we'll use the Haskell setup action to install
+ # the correct version needed for the build.
- uses: haskell/actions/setup@v2
id: setup-haskell
with:
- # We install a global GHC and use Stack with --system-ghc
+ # We install a global GHC
ghc-version: ${{ matrix.ghc-version }}
- enable-stack: true
- # First run cabal, since it is generally quicker
- name: "Cabal: Update cabal package database, generate build plan"
run: |
cabal update
@@ -77,15 +82,29 @@ jobs:
- name: "Cabal: Build"
run: cabal build
- # Now run stack
+ build-stack:
+ name: Stack Build Check
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+
+ # Since the GitHub Action Runner comes with a pre-installed Stack, we'll
+ # use that instead of installing our own through the Haskell setup action,
+ # since all we need to test the stack build is Stack itself.
+
- name: "Stack: Cache ~/.stack"
id: cache-stack
uses: actions/cache@v2
with:
path: ~/.stack
- key: stack-${{ runner.os }}-${{ matrix.ghc-version }}-${{ hashFiles('stack.yaml') }}
+ key: stack-${{ runner.os }}-${{ hashFiles('stack.yaml') }}
restore-keys: |
- stack-${{ runner.os }}-${{ matrix.ghc-version }}
+ stack-${{ runner.os }}
+
+ - name: "Print GHC version resolved from stack.yaml"
+ run: |
+ stack ghc -- --version
+ stack path --compiler-exe
- name: "Stack: Build"
- run: stack build --system-ghc
+ run: stack build