Skip to content

Publish to Hackage Workflow #255

@BebeSparkelSparkel

Description

@BebeSparkelSparkel

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions