hnix/.github/workflows/Nixpkgs-Linux-main.yml

137 lines
4.1 KiB
YAML

name: "Nixpkgs, 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"
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:
# NOTE: Basic example
build10:
name: "NixOS-unstable channel, strict build, default GHC (8.8)"
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@v10
- name: Install Cachix
uses: cachix/cachix-action@v6
with:
name: ${{ env.cachixAccount }}
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
- name: Determined Nix-build
env:
rev: "nixos-unstable"
buildStrictly: "true"
run: ./build.sh
build20:
name: "Quality build, SDist, Optimizations, Benchmark, Haddock, Completions, GHC 8.10.1"
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@v10
- name: Install Cachix
uses: cachix/cachix-action@v6
with:
name: ${{ env.cachixAccount }}
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
- name: Determined Nix-build
env:
rev: "nixos-unstable"
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@v10
- name: Install Cachix
uses: cachix/cachix-action@v6
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'