Skip to content

Go get tested! Github Actions matrix generator for your haskell projects' CI

License

Notifications You must be signed in to change notification settings

Kleidukos/get-tested

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

get-tested

A CLI tool that retrieves the tested-with stanza of a cabal file and formats it in such a way that GitHub Actions can use it.

Usage

The inputs of the action (under the with: stanza) are the following:

  • cabal-file:
    The path to your cabal file, e.g. somefolder/myproject.cabal.
    Required: true

  • version:
    The version of the get-tested tool that is used.
    Required: false
    Default: The latest release

  • windows:
    (deprecated) Enable Windows runner, latest version.
    Required: false
    Default: false

  • windows-version:
    Enable Windows runner. If both windows and windows-version inputs are set, the explicit version will take priority.
    Required: false
    Default: Not set

  • macos:
    (deprecated) Enable macOS runner, latest version.
    Required: false
    Default: false

  • macos-version:
    Enable macOS runner. If both macos and macos-version inputs are set, the explicit version will take priority.
    Required: false
    Default: Not set

  • ubuntu:
    (deprecated) Enable Ubuntu runner, latest version.
    Required: false
    Default: false

  • ubuntu-version:
    Enable Ubuntu runner. If both ubuntu and ubuntu-version inputs are set, the explicit version will take priority.
    Required: false
    Default: Not set

  • newest:
    Enable only the newest GHC version found in the cabal file
    Required: false
    Default: false

  • oldest:
    Enable only the oldest GHC version found in the cabal file
    Required: false
    Default: false

See below for an example:

jobs:
  generate-matrix:
    name: "Generate matrix from cabal"
    outputs:
      matrix: ${{ steps.set-matrix.outputs.matrix }}
    runs-on: ubuntu-latest
    steps:
      - name: Extract the tested GHC versions
        id: set-matrix
        uses: kleidukos/[email protected]
        with:
          cabal-file: get-tested.cabal
          ubuntu-version: "latest"
          macos-version: "latest"
          version: 0.1.7.1
  tests:
    name: ${{ matrix.ghc }} on ${{ matrix.os }}
    needs: generate-matrix
    runs-on: ${{ matrix.os }}
    strategy:
      matrix: ${{ fromJSON(needs.generate-matrix.outputs.matrix) }}