Skip to content

Re-enable build matrix and release job #4

Re-enable build matrix and release job

Re-enable build matrix and release job #4

Workflow file for this run

{
"jobs": {
"build": {
"name": "Build on ${{ matrix.platform }} ${{ matrix.version }} with GHC ${{ matrix.ghc }}",
"runs-on": "${{ matrix.platform }}-${{ matrix.version }}",
"steps": [
{
"uses": "actions/checkout@v4"
},
{
"run": "mkdir artifact"
},
{
"id": "haskell",
"uses": "haskell-actions/setup@v2",
"with": {
"ghc-version": "${{ matrix.ghc }}"
}
},
{
"run": "cabal sdist --output-dir artifact"
},
{
"run": "cabal configure --enable-optimization=2 --enable-tests --flags=pedantic --jobs"
},
{
"run": "cat cabal.project.local"
},
{
"run": "cp cabal.project.local artifact"
},
{
"run": "cabal freeze"
},
{
"run": "cat cabal.project.freeze"
},
{
"run": "cp cabal.project.freeze artifact"
},
{
"run": "cabal outdated --v2-freeze-file cabal.project.freeze"
},
{
"uses": "actions/cache@v4",
"with": {
"key": "${{ matrix.platform }}-${{ matrix.version }}-${{ matrix.ghc }}-${{ hashFiles('cabal.project.freeze') }}",
"path": "${{ steps.haskell.outputs.cabal-store }}",
"restore-keys": "${{ matrix.platform }}-${{ matrix.version }}-${{ matrix.ghc }}-"
}
},
{
"run": "cabal build --only-download"
},
{
"run": "cabal build --only-dependencies"
},
{
"run": "cabal build"
},
{
"run": "tar --create --file artifact.tar --verbose artifact"
},
{
"uses": "actions/upload-artifact@v4",
"with": {
"name": "imp-${{ github.sha }}-${{ matrix.platform }}-${{ matrix.version }}-${{ matrix.ghc }}",
"path": "artifact.tar"
}
}
],
"strategy": {
"matrix": {
"include": [
{
"ghc": "9.8",
"platform": "macos",
"version": 13
},
{
"ghc": "9.8",
"platform": "macos",
"version": 14
},
{
"ghc": "9.4",
"platform": "ubuntu",
"version": 22.04
},
{
"ghc": "9.6",
"platform": "ubuntu",
"version": 22.04
},
{
"ghc": "9.8",
"platform": "ubuntu",
"version": 22.04
},
{
"ghc": "9.8",
"platform": "windows",
"version": 2022
}
]
}
}
},
"cabal": {
"name": "Cabal",
"runs-on": "ubuntu-22.04",
"steps": [
{
"uses": "actions/checkout@v4"
},
{
"run": "cabal check"
}
]
},
"gild": {
"name": "Gild",
"runs-on": "ubuntu-22.04",
"steps": [
{
"uses": "actions/checkout@v4"
},
{
"uses": "tfausak/cabal-gild-setup-action@v2",
"with": {
"version": "1.3.0.0"
}
},
{
"run": "cabal-gild --input imp.cabal --mode check"
}
]
},
"hlint": {
"name": "HLint",
"runs-on": "ubuntu-22.04",
"steps": [
{
"uses": "actions/checkout@v4"
},
{
"uses": "haskell-actions/hlint-setup@v2",
"with": {
"version": 3.8
}
},
{
"uses": "haskell-actions/hlint-run@v2",
"with": {
"fail-on": "status"
}
}
]
},
"ormolu": {
"name": "Ormolu",
"runs-on": "ubuntu-22.04",
"steps": [
{
"uses": "actions/checkout@v4"
},
{
"uses": "haskell-actions/run-ormolu@v15",
"with": {
"version": "0.7.4.0"
}
}
]
},
"release": {
"if": "${{ github.event_name == 'release' }}",
"name": "Release",
"needs": "build",
"runs-on": "ubuntu-22.04",
"steps": [
{
"uses": "actions/download-artifact@v4",
"with": {
"name": "imp-${{ github.sha }}-ubuntu-22.04-9.8"
}
},
{
"run": "tar --extract --file artifact.tar"
},
{
"uses": "softprops/action-gh-release@v1",
"with": {
"files": "artifact/imp-*.tar.gz"
}
},
{
"run": "cabal upload --publish --username '${{ secrets.HACKAGE_USERNAME }}' --password '${{ secrets.HACKAGE_PASSWORD }}' artifact/imp-*.tar.gz"
}
]
}
},
"name": "Workflow",
"on": {
"push": null,
"release": {
"types": [
"created"
]
},
"schedule": [
{
"cron": "0 0 * * 1"
}
]
}
}