Hackage Deployment

This page documents deployments using dpl v1 which currently is the default version. The next major version dpl v2 will be released soon, and we recommend starting to use it. Please see our blog post for details. dpl v2 documentation can be found here.

Travis CI supports uploading to Hackage.

A minimal configuration is:

deploy:
  provider: hackage
  username: "Hackage User Name"
  password: "Hackage Password"

It is recommended to encrypt password. Assuming you have the Travis CI command line client installed, you can do it like this:

$ travis encrypt --add deploy.password

You will be prompted to enter your api key on the command line.

You can also have the travis tool set up everything for you:

$ travis setup hackage

Keep in mind that the above command has to run in your project directory, so it can modify the .travis.yml for you.

Conditional releases #

You can deploy only when certain conditions are met. See Conditional Releases with on:.

For example, if you build your project with different GHC versions but only want to deploy from one GHC version, add an on condition to your deploy: section:

deploy:
  on:
    condition: $TRAVIS_HASKELL_VERSION = 8.2.2