mirror of
https://github.com/tfausak/witch.git
synced 2024-11-26 09:43:03 +03:00
309ae27db4
* Disable CI schedule * Trigger CI
105 lines
3.1 KiB
YAML
105 lines
3.1 KiB
YAML
jobs:
|
|
build:
|
|
name: GHC ${{ matrix.ghc }} on ${{ matrix.os }}
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- run: mkdir artifact
|
|
- id: haskell
|
|
uses: haskell-actions/setup@v2
|
|
with:
|
|
ghc-version: ${{ matrix.ghc }}
|
|
- run: ghc-pkg list
|
|
- run: cabal sdist --output-dir artifact
|
|
- run: cabal configure --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
|
|
- uses: actions/cache@v4
|
|
with:
|
|
key: ${{ matrix.os }}-${{ matrix.ghc }}-${{ hashFiles('cabal.project.freeze') }}
|
|
path: ${{ steps.haskell.outputs.cabal-store }}
|
|
restore-keys: ${{ matrix.os }}-${{ 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: witch-${{ github.sha }}-${{ matrix.os }}-${{ matrix.ghc }}
|
|
path: artifact.tar
|
|
- run: cabal run -- witch-test-suite --randomize --strict
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- ghc: '9.10'
|
|
os: macos-13
|
|
- ghc: '9.10'
|
|
os: macos-14
|
|
- ghc: 9.6
|
|
os: ubuntu-22.04
|
|
- ghc: 9.8
|
|
os: ubuntu-22.04
|
|
- ghc: '9.10'
|
|
os: ubuntu-22.04
|
|
- ghc: '9.10'
|
|
os: windows-2022
|
|
cabal:
|
|
name: Cabal
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- run: cabal check
|
|
gild:
|
|
name: Gild
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: tfausak/cabal-gild-setup-action@v2
|
|
- run: cabal-gild --input witch.cabal --mode check
|
|
hlint:
|
|
name: HLint
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: haskell-actions/hlint-setup@v2
|
|
- uses: haskell-actions/hlint-run@v2
|
|
with:
|
|
fail-on: status
|
|
ormolu:
|
|
name: Ormolu
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: haskell-actions/run-ormolu@v16
|
|
release:
|
|
if: ${{ github.event_name == 'release' }}
|
|
name: Release
|
|
needs: build
|
|
permissions:
|
|
contents: write
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/download-artifact@v4
|
|
with:
|
|
name: witch-${{ github.sha }}-ubuntu-22.04-9.10
|
|
- run: tar --extract --file artifact.tar --verbose
|
|
- uses: softprops/action-gh-release@v2
|
|
with:
|
|
files: artifact/witch-${{ github.event.release.tag_name }}.tar.gz
|
|
- run: cabal upload --publish --username '${{ secrets.HACKAGE_USERNAME }}' --password '${{ secrets.HACKAGE_PASSWORD }}' artifact/witch-${{ github.event.release.tag_name }}.tar.gz
|
|
name: CI
|
|
on:
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
push:
|
|
branches:
|
|
- main
|
|
release:
|
|
types:
|
|
- created
|