diff --git a/.github/workflows/haskell-ci.yml b/.github/workflows/haskell-ci.yml index b8c5d976..a86ded0d 100644 --- a/.github/workflows/haskell-ci.yml +++ b/.github/workflows/haskell-ci.yml @@ -35,11 +35,6 @@ jobs: compilerVersion: 9.10.1 setup-method: ghcup allow-failure: false - - compiler: ghc-9.8.3 - compilerKind: ghc - compilerVersion: 9.8.3 - setup-method: ghcup - allow-failure: false - compiler: ghc-9.8.3 compilerKind: ghc compilerVersion: 9.8.3 @@ -186,7 +181,7 @@ jobs: - name: cache (tools) uses: actions/cache/restore@v4 with: - key: ${{ runner.os }}-${{ matrix.compiler }}-tools-4fd5cdc7 + key: ${{ runner.os }}-${{ matrix.compiler }}-tools-c0a7f8fa path: ~/.haskell-ci-tools - name: install cabal-plan run: | @@ -214,7 +209,7 @@ jobs: if: always() uses: actions/cache/save@v4 with: - key: ${{ runner.os }}-${{ matrix.compiler }}-tools-4fd5cdc7 + key: ${{ runner.os }}-${{ matrix.compiler }}-tools-c0a7f8fa path: ~/.haskell-ci-tools - name: checkout uses: actions/checkout@v4 diff --git a/src/HaskellCI/Config.hs b/src/HaskellCI/Config.hs index 9b41e4de..1a811fd2 100644 --- a/src/HaskellCI/Config.hs +++ b/src/HaskellCI/Config.hs @@ -62,8 +62,7 @@ parseConfigFile fields0 = do postprocessConfig :: Config -> Config postprocessConfig cfg - -- on yammy the only install option is ghcup - | cfgUbuntu cfg >= Jammy = cfg { cfgGhcupJobs = anyVersion } + | cfgUbuntu cfg >= Jammy = cfg | otherwise = cfg ------------------------------------------------------------------------------- diff --git a/src/HaskellCI/Config/History.hs b/src/HaskellCI/Config/History.hs index f3effb48..b3c41225 100644 --- a/src/HaskellCI/Config/History.hs +++ b/src/HaskellCI/Config/History.hs @@ -16,9 +16,7 @@ import HaskellCI.Config.Ubuntu import HaskellCI.Compiler (invertVersionRange) ghcupNormalRange :: VersionRange -ghcupNormalRange = C.unionVersionRanges - (C.intersectVersionRanges (C.laterVersion (mkVersion [8,10,4])) (C.earlierVersion (mkVersion [9]))) - (C.laterVersion (mkVersion [9,0,1])) +ghcupNormalRange = C.laterVersion (mkVersion [8,4,4]) configHistory :: [([Int], Config -> Config)] configHistory = @@ -36,7 +34,8 @@ configHistory = , ver 0 19 20240708 := \cfg -> cfg & field @"cfgGhcupVersion" .~ C.mkVersion [0,1,30,0] , ver 0 19 20241111 := \cfg -> cfg - & field @"cfgGhcupJobs" .~ C.intersectVersionRanges (C.intersectVersionRanges ghcupNormalRange (C.earlierVersion (C.mkVersion [9,12,0]))) (invertVersionRange (C.withinVersion (C.mkVersion [9,8,3]))) + & field @"cfgHvrPpaJobs" .~ C.earlierVersion (C.mkVersion [8,4]) + & field @"cfgGhcupJobs" .~ C.simplifyVersionRange (C.intersectVersionRanges (C.intersectVersionRanges ghcupNormalRange (C.earlierVersion (C.mkVersion [9,12,0]))) (invertVersionRange (C.withinVersion (C.mkVersion [9,8,3])))) & field @"cfgGhcupVanillaJobs" .~ C.withinVersion (C.mkVersion [9,8,3]) & field @"cfgGhcupPrereleaseJobs" .~ C.orLaterVersion (C.mkVersion [9,12,0]) ] diff --git a/src/HaskellCI/GitHub.hs b/src/HaskellCI/GitHub.hs index 3bef7815..304746c1 100644 --- a/src/HaskellCI/GitHub.hs +++ b/src/HaskellCI/GitHub.hs @@ -529,6 +529,8 @@ makeGitHub _argv config@Config {..} gitconfig prj jobs@JobVersions {..} = do [ Map.singleton "postgres" postgresService | cfgPostgres ] , ghjTimeout = max 10 cfgTimeoutMinutes , ghjMatrix = concat $ + -- we can have multiple setup methods for the same + -- compiler version, if jobs overlap. [ [ GitHubMatrixEntry { ghmeCompiler = translateCompilerVersion $ compiler , ghmeAllowFailure = @@ -542,11 +544,11 @@ makeGitHub _argv config@Config {..} gitconfig prj jobs@JobVersions {..} = do GHCUPvanilla -> cfgGhcupVanillaJobs GHCUPprerelease -> cfgGhcupPrereleaseJobs HVRPPA -> cfgHvrPpaJobs - ] - | compiler <- reverse $ toList linuxVersions - , compiler /= GHCHead -- TODO: Make this work + ] + | compiler <- reverse $ toList linuxVersions + , compiler /= GHCHead -- TODO: Make this work -- https://github.com/haskell-CI/haskell-ci/issues/458 - ] + ] }) unless (null cfgIrcChannels) $