From eb6094e0e3566096a6ebb586658c92e0fad7ed03 Mon Sep 17 00:00:00 2001 From: Andreas Abel Date: Fri, 22 Mar 2024 02:12:19 +0100 Subject: [PATCH] Bump CI to GHC 9.8 and latest versions of actions - adjust testes GHC versions to latest 3 plus oldest (GHC 8.0) - bump actions to latest - use outputs {ghc,cabal}-version of haskell-actions/setup - bump stack lts to recommended --- .github/workflows/haskell.yml | 40 +++++++++++++++-------------------- .gitignore | 3 ++- network.cabal | 7 +++--- stack.yaml | 2 +- 4 files changed, 24 insertions(+), 28 deletions(-) diff --git a/.github/workflows/haskell.yml b/.github/workflows/haskell.yml index 4f6b4a14..f01c3d9c 100644 --- a/.github/workflows/haskell.yml +++ b/.github/workflows/haskell.yml @@ -15,7 +15,7 @@ jobs: container: ubuntu:22.10 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: install autoconf run: | apt-get update -y -qq @@ -23,7 +23,7 @@ jobs: - name: run autoreconf run: | autoreconf${{ env.autoconf_ver }} -fi - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: configure path: | @@ -35,12 +35,12 @@ jobs: needs: autoconf steps: - - uses: actions/checkout@v3 - - uses: haskell/actions/setup@v2 + - uses: actions/checkout@v4 + - uses: haskell-actions/setup@v2 with: - cabal-version: '3.4' + cabal-version: 'latest' - - uses: actions/download-artifact@v3 + - uses: actions/download-artifact@v4 with: name: configure @@ -48,13 +48,13 @@ jobs: run: | cabal sdist - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: dist-tarball path: dist-newstyle/sdist/network-* - name: Release - uses: softprops/action-gh-release@v1 + uses: softprops/action-gh-release@v2 if: startsWith(github.ref, 'refs/tags/') with: files: dist-newstyle/sdist/network-* @@ -67,50 +67,44 @@ jobs: fail-fast: false matrix: os: [ 'ubuntu-latest', 'macOS-latest', 'windows-latest' ] - ghc: [ '8.10', '9.0', '9.2', '9.4', '9.6' ] + ghc: [ '8.0', '9.4', '9.6', '9.8' ] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - uses: haskell/actions/setup@v2 + - uses: haskell-actions/setup@v2 id: setup with: ghc-version: ${{ matrix.ghc }} cabal-version: latest cabal-update: true - - uses: actions/download-artifact@v3 + - uses: actions/download-artifact@v4 with: name: configure - - name: Haskell versions - shell: bash - run: | - echo "GHC_VERSION=$(ghc --numeric-version)" >> "${GITHUB_ENV}" - echo "CABAL_VERSION=$(cabal --numeric-version)" >> "${GITHUB_ENV}" - - name: Cabal configure run: | cabal configure --enable-tests --disable-benchmarks --disable-documentation - name: Cache (restore) - uses: actions/cache/restore@v3 + uses: actions/cache/restore@v4 id: cache with: path: ${{ steps.setup.outputs.cabal-store }} - key: build-${{ runner.os }}-ghc-${{ env.GHC_VERSION }}-cabal-${{ env.CABAL_VERSION }}-sha-${{ github.sha }} + key: build-${{ runner.os }}-ghc-${{ steps.setup.outputs.ghc-version }}-cabal-${{ steps.setup.outputs.cabal-version }}-sha-${{ github.sha }} # Append commit SHA so that new cache is always written. # This is fine as long as we do not hit the total cache limit of 10GB. restore-keys: | - build-${{ runner.os }}-ghc-${{ env.GHC_VERSION }}-cabal-${{ env.CABAL_VERSION }}- - build-${{ runner.os }}-ghc-${{ env.GHC_VERSION }}- + build-${{ runner.os }}-ghc-${{ steps.setup.outputs.ghc-version }}-cabal-${{ steps.setup.outputs.cabal-version }}- + build-${{ runner.os }}-ghc-${{ steps.setup.outputs.ghc-version }}- - name: Install dependencies run: | cabal build --only-dependencies - name: Cache (save) - uses: actions/cache/save@v3 + uses: actions/cache/save@v4 with: path: ${{ steps.setup.outputs.cabal-store }} key: ${{ steps.cache.outputs.cache-primary-key }} diff --git a/.gitignore b/.gitignore index 53e11f3f..7a0d1802 100644 --- a/.gitignore +++ b/.gitignore @@ -19,4 +19,5 @@ cabal.sandbox.config .cabal-sandbox .stack-work/ .ghc.* -.vscode \ No newline at end of file +.vscode +/stack.yaml.lock diff --git a/network.cabal b/network.cabal index 7bab60f6..9c6de7c2 100644 --- a/network.cabal +++ b/network.cabal @@ -6,8 +6,9 @@ license-file: LICENSE maintainer: Kazu Yamamoto, Evan Borden tested-with: - GHC == 9.6.2 - GHC == 9.4.5 + GHC == 9.8.2 + GHC == 9.6.4 + GHC == 9.4.8 GHC == 9.2.8 GHC == 9.0.2 GHC == 8.10.7 @@ -192,7 +193,7 @@ test-suite spec default-language: Haskell2010 ghc-options: -Wall -threaded build-depends: - base >=4.9 && <5, + base, bytestring, directory, HUnit, diff --git a/stack.yaml b/stack.yaml index fbd783a8..23cee2d9 100644 --- a/stack.yaml +++ b/stack.yaml @@ -1,4 +1,4 @@ -resolver: lts-17.15 +resolver: lts-21.25 packages: - '.' nix: