141 lines
4.3 KiB
YAML
141 lines
4.3 KiB
YAML
name: "(Optional) Nix dev env, Linux, main"
|
|
|
|
# When to trigger builds
|
|
on:
|
|
# On Git changes in PR
|
|
pull_request:
|
|
# On Git changes of the master
|
|
push:
|
|
branches:
|
|
- master
|
|
schedule:
|
|
# Every day at 03:45
|
|
- cron: "45 03 * * *"
|
|
|
|
|
|
env:
|
|
###
|
|
### NOTE: Table example of the provided build configuration keys
|
|
### Infrastructure uses `build.sh` API, which uses `default.nix` API, which exposes the almost literal Nixpkgs Haskell Lib API wich was abstracted for use outside of Nix language.
|
|
###
|
|
### Documentation of this settings is mosly in `default.nix`, since most settings it Nixpkgs related
|
|
### and the other part of keys explained in `build.sh`, since those address external procedures aound the builds.
|
|
### Additional documentation is in Nixpkgs Haskell.lib: https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/haskell-modules/lib.nix
|
|
###
|
|
# rev: "nixos-unstable" # 2020-09-29: NOTE: HNix default.nix currently pins the rev
|
|
cachixAccount: "hnix"
|
|
CACHIX_SIGNING_KEY: ${{ secrets.CACHIX_SIGNING_KEY }}
|
|
allowInconsistentDependencies: "false"
|
|
doJailbreak: "false"
|
|
doCheck: "true"
|
|
sdistTarball: "false"
|
|
buildFromSdist: "false"
|
|
buildStrictly: "false"
|
|
failOnAllWarnings: "false"
|
|
enableDeadCodeElimination: "false"
|
|
disableOptimization: "true"
|
|
linkWithGold: "true"
|
|
enableLibraryProfiling: "false"
|
|
enableExecutableProfiling: "false"
|
|
doTracing: "false"
|
|
enableDWARFDebugging: "false"
|
|
doStrip: "false"
|
|
enableSharedLibraries: "true"
|
|
enableStaticLibraries: "false"
|
|
enableSharedExecutables: "false"
|
|
justStaticExecutables: "false"
|
|
enableSeparateBinOutput: "false"
|
|
checkUnusedPackages: "false"
|
|
doHaddock: "false"
|
|
doHyperlinkSource: "false"
|
|
doCoverage: "false"
|
|
doBenchmark: "false"
|
|
generateOptparseApplicativeCompletions: "false"
|
|
executableNamesToShellComplete: '[ "hnix" ]'
|
|
|
|
|
|
jobs:
|
|
|
|
build10:
|
|
name: "Default Nixpkgs GHC (8.8), strict build"
|
|
runs-on: ubuntu-latest
|
|
# 2020-08-01: NOTE: Due to Nixpkgs brittleness to not block project development Nixpkgs made optional, see commit message for more info
|
|
continue-on-error: true
|
|
steps:
|
|
- name: "Git checkout"
|
|
uses: actions/checkout@v2
|
|
with:
|
|
submodules: recursive
|
|
- name: "Install Nix"
|
|
uses: cachix/install-nix-action@v12
|
|
with:
|
|
nix_path: nixpkgs=channel:nixos-unstable
|
|
- name: "Install Cachix"
|
|
uses: cachix/cachix-action@v7
|
|
with:
|
|
name: ${{ env.cachixAccount }}
|
|
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
|
|
- name: "Determined Nix-build"
|
|
env:
|
|
compiler: "default"
|
|
buildStrictly: "true"
|
|
run: ./build.sh
|
|
|
|
|
|
build20:
|
|
name: "GHC 8.10.1, quality build, SDist, Optimizations, Benchmark, Haddock, Completions"
|
|
runs-on: ubuntu-latest
|
|
continue-on-error: true
|
|
steps:
|
|
- name: "Git checkout"
|
|
uses: actions/checkout@v2
|
|
with:
|
|
submodules: recursive
|
|
- name: "Install Nix"
|
|
uses: cachix/install-nix-action@v12
|
|
with:
|
|
nix_path: nixpkgs=channel:nixos-unstable
|
|
- name: "Install Cachix"
|
|
uses: cachix/cachix-action@v7
|
|
with:
|
|
name: ${{ env.cachixAccount }}
|
|
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
|
|
- name: "Determined Nix-build"
|
|
env:
|
|
compiler: "ghc8101"
|
|
buildFromSdist: "true"
|
|
linkWithGold: "true"
|
|
doHaddock: "true"
|
|
doHyperlinkSource: "true"
|
|
disableOptimization: "false"
|
|
enableDeadCodeElimination: "true"
|
|
doBenchmark: "true"
|
|
generateOptparseApplicativeCompletions: "true"
|
|
run: ./build.sh
|
|
|
|
|
|
build40:
|
|
name: "Nix-shell & supplied locall project Hoogle DB"
|
|
runs-on: ubuntu-latest
|
|
continue-on-error: true
|
|
steps:
|
|
- name: "Git checkout"
|
|
uses: actions/checkout@v2
|
|
with:
|
|
submodules: recursive
|
|
- name: "Install Nix"
|
|
uses: cachix/install-nix-action@v12
|
|
with:
|
|
nix_path: nixpkgs=channel:nixos-unstable
|
|
- name: "Install Cachix"
|
|
uses: cachix/cachix-action@v7
|
|
with:
|
|
name: ${{ env.cachixAccount }}
|
|
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
|
|
- name: "Nix-shell"
|
|
run: nix-shell --pure --command 'echo "Evaluated, loaded and entered $IN_NIX_SHELL Nix shell env."'
|
|
- name: "Local Hoogle DB for the project development and tooling"
|
|
run: nix-shell --pure --command 'hoogle True'
|
|
|
|
|