Fix and extend CI #174
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: other | |
on: | |
- push | |
- pull_request | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
build: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: true | |
matrix: | |
os: [windows-latest, macOS-latest, macOS-14] | |
ghc: ['latest'] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: haskell-actions/setup@v2 | |
id: setup-haskell-cabal | |
with: | |
ghc-version: ${{ matrix.ghc }} | |
- name: Update cabal package database | |
run: cabal update | |
- uses: actions/cache@v4 | |
name: Cache cabal stuff | |
with: | |
path: | | |
${{ steps.setup-haskell-cabal.outputs.cabal-store }} | |
dist-newstyle | |
key: ${{ runner.os }}-${{ matrix.ghc }} | |
- name: Build | |
run: | | |
cabal sdist -z -o . | |
cabal get tasty-bench-*.tar.gz | |
cd tasty-bench-*/ | |
cabal build | |
- name: Haddock | |
run: | | |
cd tasty-bench-*/ | |
cabal haddock | |
# Emulation on s390x and ppc64le platforms is incredibly slow and memory demanding. | |
# It seems that any executable with GHC RTS takes at least 7-8 Gb of RAM, so we can | |
# run `cabal` or `ghc` on their own, but cannot run them both at the same time, striking | |
# out `cabal build`. Instead we install system packages and invoke `ghc` manually. | |
emulated: | |
needs: build | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: true | |
matrix: | |
arch: ['s390x', 'ppc64le', 'armv7', 'aarch64', 'riscv64'] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: uraimo/[email protected] | |
with: | |
arch: ${{ matrix.arch }} | |
distro: ubuntu_rolling | |
githubToken: ${{ github.token }} | |
install: | | |
apt-get update -y | |
apt-get install -y ghc libghc-tasty-dev | |
run: | | |
ghc --version | |
ghc src/Test/Tasty/Bench.hs | |
i386: | |
needs: build | |
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 libncurses5 libtinfo5 libncurses5-dev libtinfo-dev | |
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | BOOTSTRAP_HASKELL_NONINTERACTIVE=1 BOOTSTRAP_HASKELL_INSTALL_NO_STACK=1 sh | |
- uses: actions/checkout@v1 | |
- name: Test | |
run: | | |
source ~/.ghcup/env | |
cabal update | |
cabal build | |
wasm: | |
needs: build | |
runs-on: ubuntu-latest | |
env: | |
GHC_WASM_META_REV: 895f7067e1d4c918a45559da9d2d6a403a690703 | |
FLAVOUR: '9.6' | |
steps: | |
- name: setup-ghc-wasm32-wasi | |
run: | | |
cd $(mktemp -d) | |
curl -L https://gitlab.haskell.org/ghc/ghc-wasm-meta/-/archive/$GHC_WASM_META_REV/ghc-wasm-meta-master.tar.gz | tar xz --strip-components=1 | |
./setup.sh | |
~/.ghc-wasm/add_to_github_path.sh | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.ghc-wasm/.cabal/store | |
dist-newstyle | |
key: build-wasi-${{ runner.os }}-wasm-meta-${{ env.GHC_WASM_META_REV }}-flavour-${{ env.FLAVOUR }}-${{ github.sha }} | |
restore-keys: | | |
build-wasi-${{ runner.os }}-wasm-meta-${{ env.GHC_WASM_META_REV }}-flavour-${{ env.FLAVOUR }}- | |
- name: Build | |
run: | | |
wasm32-wasi-cabal build all |