From 192c0da8312d68f7c1286b6cdad6e3016d911d75 Mon Sep 17 00:00:00 2001 From: Tomas Janousek <tomi@nomi.cz> Date: Sun, 12 Nov 2023 23:34:53 +0000 Subject: [PATCH] ci: Only build haddock for hackage with the latest GHC Cabal 3.10.2.0 exposes a bug in Haddock shipped with GHC 9.0 and 9.2, so we need to work around it by bumping the version of GHC/Haddock we use for building/uploading docs to Hackage, and to prevent build failures we don't ever try to build haddocks for Hackage with older versions of GHC/Haddock. Related: https://github.com/haskell/haddock/issues/1582#issuecomment-1611412223 Related: https://github.com/haskell/cabal/issues/8326 Related: https://github.com/haskell/cabal/issues/9060 Related: https://github.com/haskell/cabal/pull/9073 Related: https://github.com/haskell/cabal/pull/9049 --- .github/workflows/haskell-ci-hackage.patch | 18 ++++++++++-------- .github/workflows/haskell-ci.yml | 6 +++++- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/.github/workflows/haskell-ci-hackage.patch b/.github/workflows/haskell-ci-hackage.patch index af35032696..34d1cdf625 100644 --- a/.github/workflows/haskell-ci-hackage.patch +++ b/.github/workflows/haskell-ci-hackage.patch @@ -37,24 +37,26 @@ set in GitHub repository secrets. jobs: linux: name: Haskell-CI - Linux - ${{ matrix.compiler }} -@@ -31,6 +38,7 @@ - compilerVersion: 9.0.2 +@@ -33,6 +40,7 @@ + compilerVersion: 9.8.1 setup-method: ghcup allow-failure: false + upload: true - - compiler: ghc-8.10.7 + - compiler: ghc-9.6.3 compilerKind: ghc - compilerVersion: 8.10.7 -@@ -237,7 +237,7 @@ - ${CABAL} -vnormal check + compilerVersion: 9.6.3 +@@ -257,6 +265,10 @@ - name: haddock run: | -- $CABAL v2-haddock --disable-documentation $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all + $CABAL v2-haddock --disable-documentation $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all ++ - name: haddock for hackage ++ if: matrix.upload ++ run: | + $CABAL v2-haddock $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH --haddock-for-hackage --builddir $GITHUB_WORKSPACE/haddock all - name: unconstrained build run: | rm -f cabal.project.local -@@ -248,3 +248,75 @@ +@@ -267,3 +279,75 @@ with: key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }} path: ~/.cabal/store diff --git a/.github/workflows/haskell-ci.yml b/.github/workflows/haskell-ci.yml index a10d68eccb..5605f90ae9 100644 --- a/.github/workflows/haskell-ci.yml +++ b/.github/workflows/haskell-ci.yml @@ -40,6 +40,7 @@ jobs: compilerVersion: 9.8.1 setup-method: ghcup allow-failure: false + upload: true - compiler: ghc-9.6.3 compilerKind: ghc compilerVersion: 9.6.3 @@ -60,7 +61,6 @@ jobs: compilerVersion: 9.0.2 setup-method: ghcup allow-failure: false - upload: true - compiler: ghc-8.10.7 compilerKind: ghc compilerVersion: 8.10.7 @@ -251,6 +251,10 @@ jobs: cd ${PKGDIR_xmonad_contrib} || false ${CABAL} -vnormal check - name: haddock + run: | + $CABAL v2-haddock --disable-documentation $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all + - name: haddock for hackage + if: matrix.upload run: | $CABAL v2-haddock $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH --haddock-for-hackage --builddir $GITHUB_WORKSPACE/haddock all - name: unconstrained build