Skip to content

Add TODO

Add TODO #254

name: Build & test in nix-shell
on:
push:
pull_request:
jobs:
build_init:
strategy:
matrix:
os: [ubuntu-22.04, ubuntu-20.04, macos-13, macos-12]
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install Nix
uses: cachix/install-nix-action@v25
with:
install_url: https://releases.nixos.org/nix/nix-2.13.3/install
extra_nix_config: |
substituters = https://cache.nixos.org https://cache.iog.io
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=
system-features = benchmark big-parallel kvm nixos-test
- name: Cache cabal stuff
uses: actions/cache@v3
with:
path: |
~/.cabal/packages
~/.cabal/store
dist-newstyle
key: ${{ runner.os }}-${{ hashFiles('**/*.cabal', '**/cabal.project', '**/cabal.project.freeze') }}
restore-keys: ${{ runner.os }}-
# Fixes error:
# Detected Bash version that isn't supported by Nixpkgs (3.2.57(1)-release)
# Please install Bash 4 or greater to continue.
- name: Install Bash
run: |
nix-env -i --from-expression '_: (import ./nix/pkgs.nix).pkgs.bash'
- name: Test nix-shell
run: nix-shell --run "echo 'it works \o/'"
- name: Run TODO.sh
run: nix-shell --run "./TODO.sh"
- name: Run 'cabal update'
run: nix-shell --run "cabal update"
- name: Build 'function-graph' library
run: nix-shell --run "cabal build lib:function-graph"
- name: Build 'function-graph-server' library
run: nix-shell --run "cabal build lib:function-graph-server"
- name: Build 'test-unit' test suite
run: nix-shell --run "cabal build test-suite:test-unit"
- name: Run 'test-unit' test suite
run: nix-shell --run "cabal test test-suite:test-unit --test-show-details=direct"
- name: Build 'test-web' test suite
run: nix-shell --run "cabal build exe:test-web"
- name: Run 'test-web' test suite
run: nix-shell --run "cabal run exe:test-web --test-show-details=direct"
- name: Build benchmark-lib
run: nix-shell --run "cabal build bench:benchmark-lib"
- name: Run benchmark-lib
run: nix-shell --run "cabal run bench:benchmark-lib"
- name: Build benchmark-web
run: nix-shell --run "cabal build bench:benchmark-web"
- name: Run benchmark-web
run: nix-shell --run "cabal run bench:benchmark-web"
- name: Build 'function-graph' executable
run: nix-shell --run "cabal build exe:function-graph"
- name: Build 'server' executable
run: nix-shell --run "cabal build exe:server"