Skip to content

Commit

Permalink
Improve CI
Browse files Browse the repository at this point in the history
  • Loading branch information
hasufell committed Jan 4, 2025
1 parent aa49a9f commit 23aa9ad
Showing 1 changed file with 25 additions and 58 deletions.
83 changes: 25 additions & 58 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,38 +15,28 @@ jobs:
matrix:
os: [ubuntu-latest]
ghc: ['8.6', '8.8', '8.10', '9.0', '9.2', '9.4', '9.6', '9.8']
cabal: ['3.8.1.0']
include:
- os: macOS-13
ghc: '9.4'
cabal: '3.8.1.0'
- os: macOS-13
ghc: '9.6'
cabal: '3.8.1.0'
- os: windows-latest
ghc: '9.4'
cabal: '3.8.1.0'
- os: windows-latest
ghc: '9.6'
cabal: '3.8.1.0'
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Install dependencies (Ubuntu)
if: runner.os == 'Linux'
run: |
sudo apt-get -y update
sudo apt-get -y install libtinfo6 libncurses6
- name: Install GHCup
uses: haskell/ghcup-setup@v1

- name: Install ghc/cabal
run: |
set -eux
ghcup install ghc --set ${{ matrix.ghc }}
ghcup install cabal --set ${{ matrix.cabal }}
shell: bash
- uses: haskell/ghcup-setup@v1
with:
ghc: ${{ matrix.ghc }}
cabal: latest

- name: Build
run: |
Expand Down Expand Up @@ -105,6 +95,7 @@ jobs:
runs-on: ${{ matrix.os }}
env:
MACOSX_DEPLOYMENT_TARGET: 10.13
HOMEBREW_CHANGE_ARCH_TO_ARM: 1
strategy:
fail-fast: false
matrix:
Expand All @@ -119,23 +110,26 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4

- name: Install GHCup
uses: haskell/ghcup-setup@v1
- name: Install prerequisites
run: |
bash .github/scripts/brew.sh git coreutils llvm@13 autoconf automake
echo PATH="$HOME/.brew/bin:$HOME/.brew/sbin:$HOME/.brew/opt/llvm@13/bin:$PATH" >> "$GITHUB_ENV"
echo CC="$HOME/.brew/opt/llvm@13/bin/clang" >> "$GITHUB_ENV"
echo CXX="$HOME/.brew/opt/llvm@13/bin/clang++" >> "$GITHUB_ENV"
echo LD=ld >> "$GITHUB_ENV"
echo AR="$HOME/.brew/opt/llvm@13/bin/llvm-ar" >> "$GITHUB_ENV"
echo RANLIB="$HOME/.brew/opt/llvm@13/bin/llvm-ranlib" >> "$GITHUB_ENV"
- uses: haskell/ghcup-setup@v1
with:
ghc: ${{ matrix.ghc }}
cabal: latest

- name: Run build
run: |
bash .github/scripts/brew.sh git coreutils llvm@13 autoconf automake
export PATH="$HOME/.brew/bin:$HOME/.brew/sbin:$HOME/.brew/opt/llvm@13/bin:$PATH"
export CC="$HOME/.brew/opt/llvm@13/bin/clang"
export CXX="$HOME/.brew/opt/llvm@13/bin/clang++"
export LD=ld
export AR="$HOME/.brew/opt/llvm@13/bin/llvm-ar"
export RANLIB="$HOME/.brew/opt/llvm@13/bin/llvm-ranlib"
cabal update
cabal test
cabal bench
env:
HOMEBREW_CHANGE_ARCH_TO_ARM: 1
freebsd:
runs-on: ${{ matrix.os }}
Expand All @@ -153,42 +147,15 @@ jobs:

- name: Install prerequisites
run: |
sudo pkg install -y curl gcc gmp gmake ncurses perl5 libffi libiconv git bash misc/compat10x misc/compat11x misc/compat12x gmake autoconf
sudo pkg install -y curl gcc gmp gmake ncurses perl5 libffi libiconv git bash misc/compat10x misc/compat11x misc/compat12x gmake llvm14 autoconf
- name: Install GHCup
uses: haskell/ghcup-setup@v1
- uses: haskell/ghcup-setup@v1
with:
ghc: ${{ matrix.ghc }}
cabal: latest

- name: Run build
run: |
cabal update
cabal test
cabal bench
# Emulation 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 test`. Instead we rely on system packages and invoke
# `ghc --make` manually, and even so `ghc -O` is prohibitively expensive.
emulated:
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
arch: ['s390x', 'ppc64le']
steps:
- uses: actions/checkout@v4
- uses: uraimo/[email protected]
timeout-minutes: 60
with:
arch: ${{ matrix.arch }}
distro: ubuntu_rolling
githubToken: ${{ github.token }}
install: |
apt-get update -y
apt-get install -y curl ghc libghc-tasty-quickcheck-dev libghc-syb-dev
run: |
ghc --version
ghc --make -itests:tests/bytestring-tests -o Main tests/bytestring-tests/Main.hs +RTS -s
./Main +RTS -s
ghc --make -itests:tests/encoding -o Main tests/encoding/Main.hs +RTS -s
./Main +RTS -s

0 comments on commit 23aa9ad

Please sign in to comment.