mirror of https://github.com/voidlizard/hbs2
54 lines
1.7 KiB
YAML
54 lines
1.7 KiB
YAML
name: Haskell CI
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
build:
|
|
if: "!contains(github.event.head_commit.message, 'skip ci') && !contains(github.event.head_commit.message, 'ci skip')"
|
|
runs-on: ubuntu-22.04
|
|
|
|
strategy:
|
|
matrix:
|
|
ghc-version: ['8.0.2','8.2.2','8.4.4','8.6.5','8.8.4','8.10.7','9.0.2', '9.2.6', '9.4.4']
|
|
fail-fast: false
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Workaround runner image issue
|
|
if: ${{ runner.os == 'Linux' }}
|
|
# https://github.com/actions/runner-images/issues/7061
|
|
run: sudo chown -R $USER /usr/local/.ghcup
|
|
|
|
- uses: haskell/actions/setup@v2
|
|
with:
|
|
ghc-version: ${{ matrix.ghc-version }}
|
|
cabal-version: '3.8'
|
|
|
|
- name: Cache
|
|
uses: actions/cache@v2
|
|
env:
|
|
cache-name: cache-cabal-ghc-${{ matrix.ghc-version }}
|
|
with:
|
|
path: ~/.cabal
|
|
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/*.cabal') }}-${{ hashFiles('**/cabal.project') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-build-${{ env.cache-name }}-
|
|
|
|
- name: Install libsodium
|
|
run: |
|
|
curl -# -L https://github.com/jedisct1/libsodium/releases/download/$SODIUMVER-RELEASE/libsodium-$SODIUMVER.tar.gz | tar xzf -
|
|
(cd libsodium-$SODIUMVER && ./autogen.sh && ./configure && make check && sudo make install && sudo ldconfig)
|
|
env:
|
|
SODIUMVER: 1.0.18
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
cabal update
|
|
cabal build --only-dependencies --enable-tests --enable-benchmarks
|
|
- name: Build
|
|
run: cabal build --enable-tests --enable-benchmarks all
|
|
- name: Run tests
|
|
run: cabal test all
|
|
- name: Install
|
|
run: cabal install --lib
|