improve implicit cradle #555
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: Build and Test | |
on: | |
pull_request: | |
branches: | |
- '**' | |
push: | |
branches: | |
- master | |
jobs: | |
build: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
ghc: ['9.8.1', '9.6.3', '9.4.7', '9.2.8', '9.0.2', '8.10.7'] | |
os: [ubuntu-latest, macOS-latest, windows-latest] | |
steps: | |
- uses: actions/checkout@v4 | |
- id: extra-ghc | |
uses: haskell/actions/setup@v2 | |
with: | |
cabal-version: '3.10.2.0' | |
ghc-version: '8.10.7' | |
- uses: haskell/actions/setup@v2 | |
with: | |
ghc-version: ${{ matrix.ghc }} | |
cabal-version: '3.10.2.0' | |
enable-stack: true | |
- name: Print extra ghc version | |
run: ghc-8.10.7 --version | |
- name: Print normal ghc version | |
run: ghc --version | |
- name: Instruct stack to use system ghc if possible | |
run: stack config set system-ghc --global true | |
- name: Cache Cabal | |
uses: actions/[email protected] | |
with: | |
path: | | |
~/.cabal/packages | |
~/.cabal/store | |
dist-newstyle | |
key: ${{ runner.os }}-${{ matrix.ghc }}-${{ hashFiles('**/*.cabal', '**/cabal.project', '**/cabal.project.freeze') }} | |
restore-keys: ${{ runner.os }}-${{ matrix.ghc }}- | |
- run: cabal update | |
- name: Build | |
run: cabal build | |
- name: Test Parser | |
run: cabal test parser-tests --test-show-details=direct | |
- name: Test Bios | |
# Run all tests in the project | |
run: cabal test bios-tests --test-show-details=direct --test-options="--ignore-tool-deps" | |
sdist: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: haskell/actions/setup@v2 | |
- name: Check | |
run: cabal check | |
- name: Generate sdist | |
run: cabal sdist | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: 'sdist' | |
path: dist-newstyle/sdist/hie-bios*.tar.gz | |
shellcheck: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ludeeus/action-shellcheck@master | |
with: | |
ignore: tests | |
windows-wrapper: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: haskell/actions/setup@v2 | |
with: | |
ghc-version: ${{ matrix.ghc }} | |
- name: Compile Windows wrapper | |
run: ghc -hide-all-packages -package base -package directory -package process -Wall -Werror wrappers/cabal.hs -o CabalWrapper |