A workflow to publish to hackage.
name: Publish to Hackage
on:
push:
tags:
- 'v*'
jobs:
upload:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up cabal
uses: haskell/actions/setup@v2
with:
ghc-version: '8.10.7'
cabal-version: '3.4'
- name: Build dependencies
run: cabal update && cabal build --only-dependencies
- name: Build package
run: cabal build
- name: Generate sdist
run: cabal sdist
- name: Upload to Hackage
env:
HACKAGE_USERNAME: ${{ secrets.HACKAGE_USERNAME }}
HACKAGE_PASSWORD: ${{ secrets.HACKAGE_PASSWORD }}
run: |
cabal upload dist-newstyle/sdist/mono-traversable-<version>.tar.gz
# Note: Replace `<version>` with your actual package version or use environment variables.
- name: Upload Documentation
env:
HACKAGE_USERNAME: ${{ secrets.HACKAGE_USERNAME }}
HACKAGE_PASSWORD: ${{ secrets.HACKAGE_PASSWORD }}
run: |
cabal haddock --haddock-for-hackage
cabal upload -d dist-newstyle/doc/html/mono-traversable-<version>-docs.tar.gz
#253
A workflow to publish to hackage.
#253