137 lines
4.1 KiB
YAML
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'
|
|
|
|
|