--- #257
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: argo | |
on: | |
push: | |
branches: [master] | |
pull_request: | |
branches: [master] | |
jobs: | |
build-linux: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
ghc-ver: ["8.10.7", "9.0.2", "9.2.8", "9.4.5", "9.6.2", "9.8.1"] | |
cabal-ver: ["3.10.1.0"] | |
# complete all jobs | |
fail-fast: false | |
name: Argo - GHC v${{ matrix.ghc-ver }} - ubuntu-latest | |
steps: | |
- uses: actions/setup-python@v2 | |
with: | |
# Ensure pyproject.toml and python/mypy.ini are kept in sync with the Python version here. | |
python-version: '3.12' | |
- uses: abatilo/[email protected] | |
with: | |
poetry-version: 1.4.2 | |
- name: Checkout | |
uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- name: Get GHC and Cabal | |
uses: haskell/actions/setup@v1 | |
id: setup-haskell | |
with: | |
ghc-version: ${{ matrix.ghc-ver }} | |
cabal-version: ${{ matrix.cabal-ver }} | |
- uses: actions/cache/restore@v3 | |
name: Restore cabal store cache | |
with: | |
path: /home/runner/.cabal/store/ghc-${{ matrix.ghc-ver }} | |
# Prefer previous SHA hash if it is still cached | |
key: linux-${{ matrix.ghc-ver }}-${{ hashFiles('cabal.project.freeze') }}-${{ github.sha }} | |
# otherwise just use most recent build. | |
restore-keys: linux-${{ matrix.ghc-ver }}-${{ hashFiles('cabal.project.freeze') }} | |
- name: Cabal update | |
run: cabal update | |
# Build macaw-base dependencies and crucible separately just so later | |
# steps are less verbose and major dependency failures are separate. | |
- name: Install python dependencies | |
working-directory: ./python | |
# see https://github.com/python-poetry/poetry/issues/4210 for new-installer workaround details below | |
run: | | |
poetry config experimental.new-installer false | |
poetry install | |
- name: Typecheck python code | |
working-directory: ./python | |
run: poetry run mypy --install-types --non-interactive argo_client | |
- name: Configure | |
run: | | |
cabal configure --enable-tests | |
- name: Build | |
run: | | |
cabal build all | |
- name: Cabal argo tests | |
run: cabal test argo | |
- name: Python argo-client unit tests | |
working-directory: ./python | |
run: poetry run python -m unittest discover --verbose tests | |
- uses: actions/cache/save@v3 | |
name: Save cabal store cache | |
if: always() | |
with: | |
path: /home/runner/.cabal/store/ghc-${{ matrix.ghc-ver }} | |
# Prefer previous SHA hash if it is still cached | |
key: linux-${{ matrix.ghc-ver }}-${{ hashFiles('cabal.project.freeze') }}-${{ github.sha }} |