bump version #40
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Haskell CI | |
on: | |
push: | |
branches: | |
- '**' | |
pull_request: | |
branches: | |
- master | |
jobs: | |
build: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macOS-latest, windows-latest] | |
plan: | |
- { resolver: lts-16.31, flag: test-different-solvers } | |
- { resolver: lts-18.28, flag: test-different-solvers } | |
- { resolver: lts-19.33, flag: test-different-solvers } | |
- { resolver: lts-20.26, flag: test-different-solvers } | |
- { resolver: lts-21.25, flag: test-different-solvers } | |
- { resolver: lts-21.25, flag: -test-different-solvers } | |
- { resolver: lts-22.6, flag: test-different-solvers } | |
- { resolver: nightly, flag: test-different-solvers } | |
include: | |
- os: ubuntu-latest | |
apt-get: java-common | |
exclude: | |
- os: ubuntu-latest | |
plan: { resolver: lts-16.31 } | |
- os: macOS-latest | |
plan: { resolver: lts-16.31 } | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Install ${{ matrix.os }} Packages | |
uses: delgurth/get-package@v6.0.0 | |
with: | |
apt-get: ${{ matrix.apt-get }} | |
brew: ${{ matrix.brew }} | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v3 | |
name: Cache ~/.stack | |
with: | |
path: ~/.stack | |
key: ${{ runner.os }}-stack-global-${{ matrix.plan.resolver }}-${{ hashFiles('stack.yaml') }}-${{ hashFiles('package.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-stack-global-${{ matrix.plan.resolver }}-${{ hashFiles('stack.yaml') }} | |
${{ runner.os }}-stack-global-${{ matrix.plan.resolver }} | |
${{ runner.os }}-stack-global- | |
if: contains(matrix.os, 'windows') == false | |
- uses: actions/cache@v3 | |
name: Cache %APPDATA%\stack %LOCALAPPDATA%\Programs\stack | |
with: | |
path: | | |
~\AppData\Roaming\stack | |
~\AppData\Local\Programs\stack | |
key: ${{ runner.os }}-stack-global-${{ matrix.plan.resolver }}-${{ hashFiles('stack.yaml') }}-${{ hashFiles('package.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-stack-global-${{ matrix.plan.resolver }}-${{ hashFiles('stack.yaml') }} | |
${{ runner.os }}-stack-global-${{ matrix.plan.resolver }} | |
${{ runner.os }}-stack-global- | |
if: contains(matrix.os, 'windows') | |
- uses: actions/cache@v3 | |
name: Cache .stack-work | |
with: | |
path: .stack-work | |
key: ${{ runner.os }}-stack-work-${{ matrix.plan.resolver }}-${{ hashFiles('stack.yaml') }}-${{ hashFiles('package.yaml') }}-${{ hashFiles('**/*.hs') }} | |
restore-keys: | | |
${{ runner.os }}-stack-work-${{ matrix.plan.resolver }}-${{ hashFiles('stack.yaml') }} | |
${{ runner.os }}-stack-work-${{ matrix.plan.resolver }} | |
${{ runner.os }}-stack-work- | |
- name: Setup stack | |
uses: haskell-actions/setup@v2 | |
with: | |
enable-stack: true | |
stack-no-global: true | |
- name: Install dependencies on unix | |
run: | | |
set -ex | |
stack --no-terminal --install-ghc $ARGS test --bench --only-dependencies | |
set +ex | |
env: | |
ARGS: "--resolver=${{ matrix.plan.resolver }}" | |
if: contains(matrix.os, 'windows') == false | |
- name: Install dependencies on windows | |
shell: powershell | |
run: | | |
stack --no-terminal -j 1 --install-ghc ${env:ARGS} test --bench --only-dependencies | |
env: | |
ARGS: "--resolver=${{ matrix.plan.resolver }}" | |
if: contains(matrix.os, 'windows') | |
- name: Build on unix | |
run: | | |
set -ex | |
stack --no-terminal --install-ghc test $ARGS --coverage --bench --no-run-benchmarks --haddock --no-haddock-deps --test-arguments='--skip=PLingeling' | |
set +ex | |
env: | |
ARGS: "--resolver=${{ matrix.plan.resolver }} --flag call-alloy:${{ matrix.plan.flag }}" | |
if: contains(matrix.os, 'windows') == false | |
- name: Build on windows | |
shell: powershell | |
run: | | |
stack --no-terminal --install-ghc test ${env:RESOLVER} ${env:FLAG} --coverage --bench --no-run-benchmarks --haddock --no-haddock-deps --test-arguments='--skip=Glucose --skip=Glucose41 --skip=Lingeling --skip=MiniSat --skip=MiniSatProver --skip=PLingeling' | |
env: | |
RESOLVER: "--resolver=${{ matrix.plan.resolver }}" | |
FLAG: "--flag=call-alloy:${{ matrix.plan.flag }}" | |
if: contains(matrix.os, 'windows') |