From eb4ae246c0a420946c4f5780090e903f2f91ac2a Mon Sep 17 00:00:00 2001 From: Richard Marko Date: Mon, 13 Nov 2023 07:30:09 +0100 Subject: [PATCH] Update CI --- .github/workflows/ci.yaml | 81 +++++++++++++++++++++------------------ ci.dhall | 15 +------- ci.sh | 5 +-- 3 files changed, 47 insertions(+), 54 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index ff2b9a1..6797832 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -1,46 +1,51 @@ +# Code generated by dhall-to-yaml. DO NOT EDIT. jobs: build: - runs-on: ubuntu-latest + name: "GHC ${{ matrix.ghc }}, Cabal ${{ matrix.cabal }}, OS ${{ matrix.os }}" + "runs-on": "${{ matrix.os }}" steps: - - uses: "actions/checkout@v3" - - id: setup-haskell-cabal - uses: "haskell/actions/setup@v2" - with: - cabal-version: "${{ matrix.cabal }}" - enable-stack: false - ghc-version: "${{ matrix.ghc }}" - - name: Update Hackage repository - run: cabal update - - name: cabal.project.local.ci - run: | - if [ -e cabal.project.local.ci ]; then - cp cabal.project.local.ci cabal.project.local - fi - - name: freeze - run: cabal freeze - - uses: "actions/cache@v3" - with: - key: "${{ runner.os }}-${{ matrix.ghc }}-cabal-${{ hashFiles('cabal.project.freeze') }}" - path: | - ${{ steps.setup-haskell-cabal.outputs.cabal-store }} - dist-newstyle - - name: Install dependencies - run: cabal build all --enable-tests --enable-benchmarks --only-dependencies - - name: build all - run: cabal build all --enable-tests --enable-benchmarks - - name: test all - run: cabal test all --enable-tests - - name: haddock all - run: cabal haddock all + - uses: "actions/checkout@v4" + with: + submodules: recursive + - id: "setup-haskell-cabal" + uses: "haskell-actions/setup@v2" + with: + "cabal-version": "${{ matrix.cabal }}" + "ghc-version": "${{ matrix.ghc }}" + - name: Update Hackage repository + run: cabal update + - name: cabal.project.local.ci + run: | + if [ -e cabal.project.local.ci ]; then + cp cabal.project.local.ci cabal.project.local + fi + - name: freeze + run: "cabal freeze --enable-tests --enable-benchmarks" + - uses: "actions/cache@v3" + with: + key: "${{ matrix.os }}-${{ matrix.ghc }}-${{ matrix.cabal}}-${{ hashFiles('cabal.project.freeze') }}" + path: | + ${{ steps.setup-haskell-cabal.outputs.cabal-store }} + dist-newstyle + - name: Install dependencies + run: "cabal build all --enable-tests --enable-benchmarks --only-dependencies" + - name: build all + run: "cabal build all --enable-tests --enable-benchmarks" + - name: test all + run: "cabal test all --enable-tests" + - name: haddock all + run: cabal haddock all strategy: matrix: cabal: - - '3.6' + - '3.10' ghc: - - '8.10.7' - - '9.0.2' - - '9.2.4' + - '9.6.3' + os: + - "ubuntu-latest" name: Haskell CI -on: - - push - - pull_request +'on': + pull_request: {} + push: {} + schedule: + - cron: "4 20 10 * *" diff --git a/ci.dhall b/ci.dhall index 928dc19..89933fe 100644 --- a/ci.dhall +++ b/ci.dhall @@ -1,15 +1,4 @@ let haskellCi = - https://raw.githubusercontent.com/sorki/github-actions-dhall/pending/haskell-ci.dhall + https://raw.githubusercontent.com/sorki/github-actions-dhall/main/haskell-ci.dhall -in haskellCi.generalCi - haskellCi.matrixSteps - ( Some - { ghc = - [ haskellCi.GHC.GHC8107 - , haskellCi.GHC.GHC902 - , haskellCi.GHC.GHC924 - ] - , cabal = [ haskellCi.Cabal.Cabal36 ] - } - ) - : haskellCi.CI.Type +in haskellCi.defaultCi : haskellCi.CI.Type diff --git a/ci.sh b/ci.sh index 7d7cc86..b944ed4 100755 --- a/ci.sh +++ b/ci.sh @@ -4,10 +4,9 @@ set -eo pipefail cd "$( dirname "${BASH_SOURCE[0]}" )" -echo "regenerating .github/workflows/ci.yaml..." +echo "regenerating .github/workflows/ci.yaml" mkdir -p .github/workflows -# based on https://github.com/vmchale/github-actions-dhall which dhall-to-yaml || cabal install dhall-yaml -dhall-to-yaml --file ci.dhall > .github/workflows/ci.yaml +dhall-to-yaml-ng --generated-comment --file ci.dhall > .github/workflows/ci.yaml