Scripts and instructions for using CI services (e.g. Travis CI or Appveyor) with multiple GHC configurations
Haskell
454
1,090 commits
updated Sep 3, 2026
At the moment haskell-ci support GitHub Actions workflow generation.
There is also legacy Travis-CI configuration generator, which is unmaintained.
haskell-ci relies on hvr-ppa
or ghcup to install GHC
and cabal-install.
Step 1: Clone and install this project in/from any directory
$ git clone https://github.com/haskell-CI/haskell-ci.git
$ cd haskell-ci
$ cabal install haskell-ci:exe:haskell-ci
or
cabal install haskell-ci
Step 2: Change directories to your project:
$ cd path/to/your-project
Step 3: Edit your project's *.cabal file to add a tested-with line, such as this one:
$ cat your-project.cabal
...
tested-with: GHC ==9.6.3 || ==9.4.8 || ==9.2.8
...
Add as many or as few GHC versions to test as you want.
Step 4: Generate a workflow file for your project:
$ # You run the following command from your project's directory, even
$ # though it references the script from the `haskell-ci` project
$ haskell-ci github your-project.cabal
Note: If you have multiple local Cabal projects that you wish to build together
using a cabal.project file, pass that file to haskell-ci instead:
$ haskell-ci github cabal.project
The haskell-ci tool looks at the Tested-With line in your
*.cabal files and generates a configuration that tests each compiler
version you listed in parallel.
Step 5: Create a pull request with your new CI configuration.
... or push directly to your main branch if you feel lucky.
Sometimes you may need to regenerate CI script, for example, when
adding new compiler version to tested-with.
You may simply run haskell-ci regenerate.
(top 30 of 39)
Haskell
55.8%
Shell
39.4%
Dockerfile
4.4%
Scripts and instructions for using CI services (e.g. Travis CI or Appveyor) with multiple GHC configurations
Haskell
454
1,090 commits
updated Sep 3, 2026
At the moment haskell-ci support GitHub Actions workflow generation.
There is also legacy Travis-CI configuration generator, which is unmaintained.
haskell-ci relies on hvr-ppa
or ghcup to install GHC
and cabal-install.
Step 1: Clone and install this project in/from any directory
$ git clone https://github.com/haskell-CI/haskell-ci.git
$ cd haskell-ci
$ cabal install haskell-ci:exe:haskell-ci
or
cabal install haskell-ci
Step 2: Change directories to your project:
$ cd path/to/your-project
Step 3: Edit your project's *.cabal file to add a tested-with line, such as this one:
$ cat your-project.cabal
...
tested-with: GHC ==9.6.3 || ==9.4.8 || ==9.2.8
...
Add as many or as few GHC versions to test as you want.
Step 4: Generate a workflow file for your project:
$ # You run the following command from your project's directory, even
$ # though it references the script from the `haskell-ci` project
$ haskell-ci github your-project.cabal
Note: If you have multiple local Cabal projects that you wish to build together
using a cabal.project file, pass that file to haskell-ci instead:
$ haskell-ci github cabal.project
The haskell-ci tool looks at the Tested-With line in your
*.cabal files and generates a configuration that tests each compiler
version you listed in parallel.
Step 5: Create a pull request with your new CI configuration.
... or push directly to your main branch if you feel lucky.
Sometimes you may need to regenerate CI script, for example, when
adding new compiler version to tested-with.
You may simply run haskell-ci regenerate.
(top 30 of 39)
Haskell
55.8%
Shell
39.4%
Dockerfile
4.4%