Skip to content

ci

ci #398

Workflow file for this run

name: ci
on:
push:
pull_request:
schedule:
- cron: 0 0 * * *
defaults:
run:
shell: bash
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
os: [ubuntu-22.04, macOS-latest]
ghc: ['9.6', '9.4', '9.2', '9.0', '8.10', '8.8', '8.6', '8.4', '8.2']
steps:
- uses: actions/checkout@v3
- name: Install prerequisites for GHC 8.2 on ubuntu-22.04
if: runner.os == 'Linux' && matrix.ghc == '8.2'
run: |
sudo apt-get install libncurses5 libtinfo5
- name: Setup toolchain
run: |
which ghcup
ghcup install cabal recommended
ghcup install ghc --set ${{ matrix.ghc }}
- uses: actions/cache@v3
name: Cache cabal stuff
with:
path: |
~/.cabal/store
dist-newstyle
key: ${{ runner.os }}-${{ matrix.ghc }}
- name: Build
run: |
ghc --version
cabal --version
cabal update
autoreconf --version
autoreconf -i
cabal sdist -z -o .
cabal get unix-*.tar.gz
cd unix-*/
cabal test all --test-show-details=direct
- name: Haddock
run: cabal haddock
centos7:
runs-on: ubuntu-latest
container:
image: centos:7
steps:
- name: Install
run: |
yum install -y gcc gmp gmp-devel make ncurses ncurses-compat-libs xz perl autoconf
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | BOOTSTRAP_HASKELL_NONINTERACTIVE=1 sh
- uses: actions/checkout@v3
- name: Test
run: |
source ~/.ghcup/env
cabal --version
cabal update
autoreconf --version
autoreconf -i
cabal test all --test-show-details=direct
fedora36:
runs-on: ubuntu-latest
container:
image: fedora:36
steps:
- name: Install
run: |
dnf install -y gcc gmp gmp-devel make ncurses ncurses-compat-libs xz perl autoconf
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | BOOTSTRAP_HASKELL_NONINTERACTIVE=1 sh
- uses: actions/checkout@v3
- name: Test
run: |
source ~/.ghcup/env
cabal --version
cabal update
autoreconf --version
autoreconf -i
cabal test all --test-show-details=direct
i386:
runs-on: ubuntu-latest
container:
image: i386/ubuntu:bionic
steps:
- name: Install
run: |
apt-get update -y
apt-get install -y autoconf build-essential zlib1g-dev libgmp-dev curl
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | BOOTSTRAP_HASKELL_NONINTERACTIVE=1 sh
- uses: actions/checkout@v1
- name: Test
run: |
source ~/.ghcup/env
cabal --version
cabal update
autoreconf --version
autoreconf -i
cabal v2-test --constraint 'optparse-applicative -process' --constraint 'QuickCheck +old-random' --constraint 'tasty -unix' all
arm:
runs-on: [self-hosted, Linux, ARM64]
strategy:
fail-fast: false
matrix:
arch: [arm32v7, arm64v8]
steps:
- uses: docker://hasufell/arm64v8-ubuntu-haskell:focal
name: Cleanup
with:
args: "find . -mindepth 1 -maxdepth 1 -exec rm -rf -- {} +"
- name: Checkout code
uses: actions/checkout@v3
- if: matrix.arch == 'arm32v7'
uses: docker://hasufell/arm32v7-ubuntu-haskell:focal
name: Run build (arm32v7 linux)
with:
args: sh -c "cabal update && autoreconf -i && cabal test all --test-show-details=direct"
- if: matrix.arch == 'arm64v8'
uses: docker://hasufell/arm64v8-ubuntu-haskell:focal
name: Run build (arm64v8 linux)
with:
args: sh -c "cabal update && autoreconf -i && cabal test all --test-show-details=direct"