Files
xmonad/.github/workflows/tests.yml
Peter Simons 3015968ee4 Run CI builds with Stackage Nightly.
Unfortunately, our CI builds have a hard-coded assumption that all kinds of
LTS-X builds can be performed with the same stack.yaml file, which is not true.
We need to use specialized build instructions for each version of the
environment we're building in, e.g. stack-lts-16.yaml, stack-nightly.yaml, and
so on. Making that change is not super hard, but it's not completely trivial
either because the hooks use a hash of the stack file to determine whether the
cash is still valid, etc., and I'm not entirely sure about the best way to
adapt that code to support multiple YAML files.

For the time being, the most important build IMHO is Stackage Nightly,
because (a) we really want to support the nightly snapshot since (b) it can
compile the genmanpage executable relatively easily.
2021-01-09 19:46:50 +01:00

40 lines
1.1 KiB
YAML

name: Tests
on:
pull_request:
push:
branches:
- master
jobs:
build:
name: CI
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
resolver: [nightly]
steps:
- name: Clone project
uses: actions/checkout@v2
- name: Cache dependencies
uses: actions/cache@v2
with:
path: ~/.stack
key: ${{ runner.os }}-${{ matrix.resolver }}-${{ hashFiles('stack.yaml') }}-${{ hashFiles('xmonad.cabal') }}
restore-keys: |
${{ runner.os }}-${{ matrix.resolver }}-${{ hashFiles('stack.yaml') }}-
${{ runner.os }}-${{ matrix.resolver }}-
- name: Build and run tests
shell: bash
run: |
set -ex
curl -sSL https://get.haskellstack.org/ | sh -s - -f
sudo apt install -y libasound2 libasound2-dev libxrandr-dev libtinfo-dev
sudo apt install -y libx11-dev libgmp-dev libxss-dev libxft-dev
stack test --fast --no-terminal --resolver=${{ matrix.resolver }}