mirror of
https://github.com/Bodigrim/tasty-bench.git
synced 2024-10-26 09:00:21 +03:00
115 lines
3.2 KiB
YAML
115 lines
3.2 KiB
YAML
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']
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: uraimo/run-on-arch-action@v2.7.1
|
|
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
|