-
Notifications
You must be signed in to change notification settings - Fork 115
141 lines (129 loc) · 4.32 KB
/
Optional-Nix-dev-env-main.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
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: "272fad732d39b24c4549c475176e0d8cbc8c897a"
cachixAccount: "hnix"
CACHIX_SIGNING_KEY: ${{ secrets.CACHIX_SIGNING_KEY }}
allowInconsistentDependencies: "false"
doJailbreak: "false"
doCheck: "false"
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:
# 2020-12-29: NOTE: Make builds strict again!
build10:
name: "Nixpkgs 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@v3
with:
submodules: recursive
- name: "Install Nix"
uses: cachix/install-nix-action@v20
with:
nix_path: nixpkgs=channel:nixos-unstable
- name: "Install Cachix"
uses: cachix/cachix-action@v12
with:
name: ${{ env.cachixAccount }}
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
- name: "Determined Nix-build"
env:
compiler: "ghc884"
run: ./build.sh
build20:
name: "Nixpkgs GHC (8.10), strict quality build, SDist, Optimizations, Benchmark, Haddock, Completions"
runs-on: ubuntu-latest
continue-on-error: true
steps:
- name: "Git checkout"
uses: actions/checkout@v3
with:
submodules: recursive
- name: "Install Nix"
uses: cachix/install-nix-action@v20
with:
nix_path: nixpkgs=channel:nixos-unstable
- name: "Install Cachix"
uses: cachix/cachix-action@v12
with:
name: ${{ env.cachixAccount }}
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
- name: "Determined Nix-build"
env:
compiler: "ghc8107"
buildFromSdist: "true"
buildStrictly: "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@v3
with:
submodules: recursive
- name: "Install Nix"
uses: cachix/install-nix-action@v20
with:
nix_path: nixpkgs=channel:nixos-unstable
- name: "Install Cachix"
uses: cachix/cachix-action@v12
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'