Skip to content

Support 7.2 and 7.3 #89

Support 7.2 and 7.3

Support 7.2 and 7.3 #89

Workflow file for this run

name: CI
# Trigger the workflow on push or pull request, but only for the master branch
on:
pull_request:
push:
branches: [master]
concurrency:
group: build-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
cabal:
name: cabal / ghc ${{ matrix.ghc }} / FDB ${{ matrix.fdb-version }} / API ${{ matrix.fdb-api-version }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
cabal: ["3.10.1.0"]
ghc:
- "9.4.6"
- "9.6.2"
fdb-version:
- "7.3.15"
- "7.2.7"
- "7.1.15"
- "7.0.0"
- "6.3.12"
- "6.2.20"
- "6.1.13"
fdb-api-version:
- "520"
- "600"
- "610"
- "620"
- "630"
- "700"
- "710"
- "720"
- "730"
# For a given installed FDB version, the client can choose to connect
# with an older version, but not a newer. This clumsily enforces that
# rule.
exclude:
- {fdb-version: "6.1.13", fdb-api-version: "620"}
- {fdb-version: "6.1.13", fdb-api-version: "630"}
- {fdb-version: "6.1.13", fdb-api-version: "700"}
- {fdb-version: "6.1.13", fdb-api-version: "710"}
- {fdb-version: "6.1.13", fdb-api-version: "720"}
- {fdb-version: "6.1.13", fdb-api-version: "730"}
- {fdb-version: "6.2.20", fdb-api-version: "630"}
- {fdb-version: "6.2.20", fdb-api-version: "700"}
- {fdb-version: "6.2.20", fdb-api-version: "710"}
- {fdb-version: "6.2.20", fdb-api-version: "720"}
- {fdb-version: "6.2.20", fdb-api-version: "730"}
- {fdb-version: "6.3.12", fdb-api-version: "700"}
- {fdb-version: "6.3.12", fdb-api-version: "710"}
- {fdb-version: "6.3.12", fdb-api-version: "720"}
- {fdb-version: "6.3.12", fdb-api-version: "730"}
- {fdb-version: "7.0.0", fdb-api-version: "710"}
- {fdb-version: "7.0.0", fdb-api-version: "720"}
- {fdb-version: "7.0.0", fdb-api-version: "730"}
- {fdb-version: "7.1.15", fdb-api-version: "720"}
- {fdb-version: "7.1.15", fdb-api-version: "730"}
- {fdb-version: "7.2.7", fdb-api-version: "730"}
steps:
- uses: actions/checkout@v2
if: github.event.action == 'opened' || github.event.action == 'synchronize' || github.event.ref == 'refs/heads/master'
- name: Install foundationdb
run: ci/install-deps.sh ${{ matrix.fdb-version }}
- uses: haskell/actions/setup@v1
id: setup-haskell-cabal
name: Setup Haskell
with:
ghc-version: ${{ matrix.ghc }}
cabal-version: ${{ matrix.cabal }}
- uses: actions/cache@v1
name: Cache cabal-store
with:
path: ${{ steps.setup-haskell-cabal.outputs.cabal-store }}
key: ${{ runner.os }}-${{ matrix.ghc }}-cabal
- name: Build
run: |
source ci/export-fdb-version-flag-cabal.sh ${{ matrix.fdb-version }}
cabal update
cabal configure ${FDB_VER_FLAG}
cabal build all --enable-tests --enable-benchmarks --write-ghc-environment-files=always
- name: Test
env:
FDB_HASKELL_TEST_API_VERSION: ${{ matrix.fdb-api-version }}
run: |
cabal test all --enable-tests
stack:
name: stack / ghc ${{ matrix.ghc }} / FDB ${{ matrix.fdb-version }} / API ${{ matrix.fdb-api-version }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
stack: ["2.11.1"]
ghc: ["9.4.6"]
fdb-version:
- "7.3.15"
fdb-api-version:
- "730"
steps:
- uses: actions/checkout@v2
if: github.event.action == 'opened' || github.event.action == 'synchronize' || github.event.ref == 'refs/heads/master'
- name: Install foundationdb
run: ci/install-deps.sh ${{ matrix.fdb-version }}
- uses: haskell/actions/setup@v1
name: Setup Haskell Stack
with:
ghc-version: ${{ matrix.ghc }}
enable-stack: true
stack-version: ${{ matrix.stack }}
- uses: actions/cache@v1
name: Cache ~/.stack
with:
path: ~/.stack
key: ${{ runner.os }}-${{ matrix.ghc }}-stack
# Build and test in one step so we don't need to source the flag variable
# twice... if we run stack build, then stack test, we have to pass the flag
# again or stack turns it back off. This behavior is different from cabal
# above.
- name: Build and test
env:
FDB_HASKELL_TEST_API_VERSION: ${{ matrix.fdb-api-version }}
run: |
source ci/export-fdb-version-flag-stack.sh ${{ matrix.fdb-version }}
stack build --system-ghc --test --bench --no-run-benchmarks ${FDB_VER_FLAG}