Change structure of examples
, test
, bench
, and test-examples
to follow the one from src
#739
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: Continuous integration | |
on: [push, pull_request] | |
env: | |
# Bump this number to invalidate the Github-actions cache | |
cache-invalidation-key: 0 | |
nixpkgs-url: https://github.com/NixOS/nixpkgs/archive/574d1eac1c200690e27b8eb4e24887f8df7ac27c.tar.gz | |
jobs: | |
cabal-test: | |
name: cabal test - GHC ${{ matrix.ghc-version }} | |
strategy: | |
matrix: | |
ghc-version: [96, 98, 910] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: cachix/install-nix-action@v15 | |
with: | |
nix_path: "${{ env.nixpkgs-url }}" | |
- name: Cache Cabal dependencies | |
uses: actions/cache@v2 | |
with: | |
path: | | |
~/.cabal/packages | |
~/.cabal/store | |
dist-newstyle | |
key: cabal-deps-${{ runner.os }}-${{ hashFiles('nix/sources.json') }}-${{ matrix.ghc-version }}-v${{ env.cache-invalidation-key }}-${{ hashFiles('linear-base.cabal') }}-${{ github.sha }} | |
restore-keys: cabal-deps-${{ runner.os }}-${{ hashFiles('nix/sources.json') }}-${{ matrix.ghc-version }}-v${{ env.cache-invalidation-key }}-${{ hashFiles('linear-base.cabal') }}- | |
- name: Build Nix dependencies | |
run: nix-shell --arg ghcVersion '"${{ matrix.ghc-version }}"' --arg installHls 'false' --pure --run "echo '=== Nix dependencies installed ==='" | |
- name: Init Cabal's config file | |
run: nix-shell --arg ghcVersion '"${{ matrix.ghc-version }}"' --arg installHls 'false' --pure --run "cabal --config-file=/home/runner/.cabal/config user-config -f init" | |
- name: Update Cabal's database | |
run: nix-shell --arg ghcVersion '"${{ matrix.ghc-version }}"' --arg installHls 'false' --pure --run "cabal update" | |
- name: Build Cabal's dependencies | |
run: nix-shell --arg ghcVersion '"${{ matrix.ghc-version }}"' --arg installHls 'false' --pure --run "cabal build --dependencies-only" | |
- name: Build | |
run: nix-shell --arg ghcVersion '"${{ matrix.ghc-version }}"' --arg installHls 'false' --pure --run "cabal build" | |
- name: Haddock | |
run: nix-shell --arg ghcVersion '"${{ matrix.ghc-version }}"' --arg installHls 'false' --pure --run "cabal haddock" | |
- name: cabal-docspec | |
run: nix-shell --arg ghcVersion '"${{ matrix.ghc-version }}"' --arg installHls 'false' --pure --run "cabal-docspec" | |
- name: Build benchmarks | |
run: nix-shell --arg ghcVersion '"${{ matrix.ghc-version }}"' --arg installHls 'false' --pure --run "cabal build linear-base:bench:bench" | |
- name: Run benchmarks | |
run: nix-shell --arg ghcVersion '"${{ matrix.ghc-version }}"' --arg installHls 'false' --pure --run "cabal bench 2>&1 | tee benchmark_ghc${{ matrix.ghc-version }}.txt" | |
- name: Upload benchmark results | |
uses: actions/upload-artifact@v3 | |
with: | |
name: linear-base_benchmarks_ghc${{ matrix.ghc-version }} | |
path: | | |
benchmark_ghc${{ matrix.ghc-version }}.txt | |
retention-days: 90 | |
ormolu: | |
name: check formatting with ormolu | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: cachix/install-nix-action@v15 | |
with: | |
nix_path: "${{ env.nixpkgs-url }}" | |
- name: Cache Stack dependencies | |
uses: actions/cache@v2 | |
with: | |
path: ~/.stack | |
key: stack-deps-ormolu-${{ runner.os }}-${{ hashFiles('nix/sources.json') }}-v${{ env.cache-invalidation-key }}-${{ hashFiles('stack.yaml.lock') }}-${{ github.sha }} | |
restore-keys: stack-deps-ormolu-${{ runner.os }}-${{ hashFiles('nix/sources.json') }}-v${{ env.cache-invalidation-key }}-${{ hashFiles('stack.yaml.lock') }}- | |
- name: Build Nix dependencies | |
run: nix-shell --arg installHls 'false' --pure --run "echo '=== Nix dependencies installed ==='" | |
- name: check formatting | |
run: nix-shell --arg installHls 'false' --pure --run 'stack build ormolu && stack exec ormolu -- -m check $(find . -type f -name "*.hs-boot" -o -name "*.hs")' | |
stack-build: | |
name: stack build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: cachix/install-nix-action@v15 | |
with: | |
nix_path: "${{ env.nixpkgs-url }}" | |
- name: Cache Stack dependencies | |
uses: actions/cache@v2 | |
with: | |
path: ~/.stack | |
key: stack-deps-${{ runner.os }}-${{ hashFiles('nix/sources.json') }}-v${{ env.cache-invalidation-key }}-${{ hashFiles('stack.yaml.lock', 'linear-base.cabal') }}-${{ github.sha }} | |
restore-keys: stack-deps-${{ runner.os }}-${{ hashFiles('nix/sources.json') }}-v${{ env.cache-invalidation-key }}-${{ hashFiles('stack.yaml.lock', 'linear-base.cabal') }}- | |
- name: Build Nix dependencies | |
run: nix-shell --arg installHls 'false' --pure --run "echo '=== Nix dependencies installed ==='" | |
- name: Build | |
run: nix-shell --arg installHls 'false' --pure --run "stack build --pedantic --test --bench --no-run-benchmarks" |