nightly, release-candidate: set GITHUB_PATH to include ghcup bin. #6211
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: CI tests | |
on: | |
push: | |
branches: | |
- '*' | |
- '!rc/*' | |
- '!djot' | |
paths-ignore: | |
- 'doc/*.md' | |
- 'MANUAL.txt' | |
- '*.md' | |
- '.cirrus.yml' | |
- 'RELEASE_CHECKLIST' | |
- 'BUGS' | |
- 'README.template' | |
- 'hie.yaml' | |
- '*.nix' | |
- 'tools/**' | |
- 'linux/**' | |
- 'macos/**' | |
- 'windows/**' | |
- 'man/**' | |
pull_request: | |
paths-ignore: | |
- 'doc/*.md' | |
- 'MANUAL.txt' | |
- '*.md' | |
- 'RELEASE_CHECKLIST' | |
- 'BUGS' | |
- 'README.template' | |
- 'hie.yaml' | |
- '*.nix' | |
- 'tools/**' | |
- 'linux/**' | |
- 'macos/**' | |
- 'windows/**' | |
- 'man/**' | |
permissions: | |
contents: read | |
jobs: | |
linux: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: true | |
matrix: | |
versions: | |
- ghc: '8.10' | |
cabal: 'latest' | |
cabalopts: '' | |
- ghc: '9.0' | |
cabal: 'latest' | |
cabalopts: '' | |
- ghc: '9.2' | |
cabal: 'latest' | |
cabalopts: '' | |
- ghc: '9.4' | |
cabal: 'latest' | |
cabalopts: '' | |
- ghc: '9.6' | |
cabal: 'latest' | |
cabalopts: '' | |
steps: | |
- uses: actions/checkout@v4 | |
# needed by memory | |
- name: Install numa | |
run: sudo apt-get install libnuma-dev | |
- name: Workaround runner image issue | |
# https://github.com/actions/runner-images/issues/7061 | |
run: sudo chown -R $USER /usr/local/.ghcup | |
- name: Install cabal/ghc | |
run: | | |
ghcup install ghc --set ${{ matrix.versions.ghc }} | |
ghcup install cabal --set ${{ matrix.versions.cabal }} | |
# declare/restore cached things | |
- name: Cache cabal global package db | |
id: cabal-global | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.local/state/cabal | |
key: ${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-global-${{ secrets.CACHE_VERSION }} | |
- name: Cache cabal work | |
id: cabal-local | |
uses: actions/cache@v4 | |
with: | |
path: | | |
dist-newstyle | |
key: ${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-local-${{ secrets.CACHE_VERSION }} | |
- name: Update cabal | |
run: | | |
cabal update | |
- name: Build and test | |
run: | | |
cabal test ${{ matrix.versions.cabalopts }} --enable-tests --disable-optimization --ghc-options=-Werror all | |
linux-stack: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: true | |
steps: | |
- uses: actions/checkout@v4 | |
# needed by memory | |
- name: Install numa | |
run: sudo apt-get install libnuma-dev | |
# declare/restore cached things | |
- name: Cache stack global package db | |
id: stack-global | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.stack | |
key: ${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-stack-global-${{ secrets.CACHE_VERSION }} | |
- name: Cache stack work | |
id: stack-local | |
uses: actions/cache@v4 | |
with: | |
path: | | |
.stack-work | |
key: ${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-stack-local-${{ secrets.CACHE_VERSION }} | |
- name: Build and test | |
run: | | |
stack test --fast | |
linux-nix-cabal: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: true | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: cachix/install-nix-action@v30 | |
with: | |
nix_path: nixpkgs=channel:nixos-24.05 | |
- name: Cache cabal global package db | |
id: cabal-global | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.local/state/cabal | |
key: ${{ runner.os }}-nix-cabal-global-${{ secrets.CACHE_VERSION }} | |
- name: Cache cabal work | |
id: cabal-local | |
uses: actions/cache@v4 | |
with: | |
path: | | |
dist-newstyle | |
key: ${{ runner.os }}-nix-cabal-local-${{ secrets.CACHE_VERSION }} | |
- run: | | |
nix-shell --run "cabal update && cabal test --enable-tests --disable-optimization --ghc-options=-Werror all" | |
windows: | |
runs-on: windows-2019 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install ghc | |
run: | | |
ghcup install ghc --set 9.4.4 | |
ghcup install cabal --set 3.10 | |
# declare/restore cached things | |
- name: Cache cabal global package db | |
id: cabal-global | |
uses: actions/cache@v4 | |
with: | |
path: | | |
C:\cabal\store | |
key: ${{ runner.os }}-appdata-cabal-${{ hashFiles('cabal.project') }}-${{ secrets.CACHE_VERSION }} | |
- name: Cache cabal work | |
id: cabal-local | |
uses: actions/cache@v4 | |
with: | |
path: | | |
dist-newstyle | |
key: ${{ runner.os }}-stack-work-${{ hashFiles('cabal.project') }}-${{ secrets.CACHE_VERSION }} | |
- name: Install dependencies | |
run: | | |
cabal update | |
cabal test ${{ matrix.versions.cabalopts }} --enable-tests --disable-optimization --ghc-options=-Werror all | |
# We no longer run the macos tests, to make CI faster. | |
# macos: | |
# runs-on: macos-12 | |
# strategy: | |
# fail-fast: true | |
# matrix: | |
# versions: | |
# - ghc: '8.8.4' | |
# cabal: '3.2' | |
# steps: | |
# - uses: actions/checkout@v4 | |
# - name: Install cabal/ghc | |
# run: | | |
# ghcup install ghc --set ${{ matrix.versions.ghc }} | |
# ghcup install cabal ${{ matrix.versions.cabal }} | |
# # declare/restore cached things | |
# - name: Cache cabal global package db | |
# id: cabal-global | |
# uses: actions/cache@v4 | |
# with: | |
# path: | | |
# ~/.cabal | |
# key: ${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-global-${{ secrets.CACHE_VERSION }} | |
# - name: Cache cabal work | |
# id: cabal-local | |
# uses: actions/cache@v4 | |
# with: | |
# path: | | |
# dist-newstyle | |
# key: ${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-local-${{ secrets.CACHE_VERSION }} | |
# - name: Install dependencies | |
# run: | | |
# cabal v2-update | |
# cabal v2-build --dependencies-only --enable-tests --disable-optimization | |
# - name: Build and test | |
# run: | | |
# cabal v2-build --enable-tests --disable-optimization 2>&1 | tee build.log | |
# # fail if warnings in local build | |
# ! grep -q ": *[Ww]arning:" build.log || exit 1 | |
# cabal v2-test --disable-optimization --test-option=--hide-successes --test-option=--ansi-tricks=false |