-
Notifications
You must be signed in to change notification settings - Fork 71
/
cabal.haskell-ci
150 lines (117 loc) · 4.44 KB
/
cabal.haskell-ci
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
140
141
142
143
144
145
146
147
148
149
150
-- Most settings can be given as command line arguments
-- Config file is convenient if you maintain large amount of packages
-- Supported: xenial, bionic, focal.
-- Bionic is a default.
distribution: jammy
-- list of extra apt packages to be installed
-- apt: foo bar
jobs: 2:2
-- This is useful if you want limit jobs beyond tested-with specification,
-- e.g. while iterating the CI setup itself.
-- linux-jobs: >=8.10
-- Add GHC head job
ghc-head: False
-- travis Caching
-- cache: True
-- remove cabal noise from test output
-- cabal-noise: False
-- Build tests. In addition to True and False you may specify
-- a version range, e.g. >= 8.0 to build tests only in some jobs.
tests: True
-- Run tests. Note that only built tests are run. Accepts booleans or version range.
run-tests: True
-- Build benchmarks. There are no way to run benchmarks. Accepts booleans or version range.
benchmarks: True
-- Build haddocks. Accepts booleans or version range.
haddock: True
-- Run cabal check
-- cabal-check: True
-- Install dependencies in a separate step
-- If your project has inplace packages, you want to disable this.
-- install-dependencies: True
-- --no-tests --no-benchmarks build is useful to verify that package
-- builds when less constrained
-- no-tests-no-bench: True
-- By default `installed` constraints are used for packages
-- in global db. We can modify which constraints are used.
installed: +all -Cabal -Cabal-syntax -parsec
-- Options for local packages
local-ghc-options: -Werror
-- Add -Werror-missing-options to all, local (default), or none of the packages.
error-missing-methods: all
-- Build only these branches
branches: master
-- Enable IRC notifications to the given channel
-- project-name: haskell-ci
-- irc-channels: irc.libera.chat#haskell-lens
-- irc-nickname: github-actions
-- irc-password: ${{ secrets.MyIrcBotPassword }}
-- irc-if-in-origin-repo: True
-- Run doctest (on GHC-8.0+ which support .ghc.environment)
doctest: <9
doctest-options: --fast
-- doctest-version: ==0.13.*
doctest-filter-packages: base-compat-batteries
-- Run cabal-docspec
docspec: True
docspec-options: --verbose --timeout 2
-- macOS job
macos-jobs: ==8.10.*
-- on Linux we can use ghcup to setup (some) of jobs
-- ghcup-jobs: >=9
-- Define per-job environment variables
-- env: 8.4.4:FOO=bar,
-- 8.6.4:FOO=baz
-- Constraint sets
-- Package will be build with different constraints.
-- This is useful to check compatibility with older versions of dependencies.
constraint-set deepseq-1.4
ghc: (>= 7.8 && <7.10) || == 8.2.2
constraints: deepseq ==1.4.*
constraints: binary installed
-- Constraint sets accept booleans for few steps, as the main script
-- Defaults are False.
-- These fields don't accept version ranges: you should rather create
-- another constraint set.
-- tests: False
-- run-tests: False
-- docspec: False
-- benchmarks: False
haddock: True
-- Copy over additional properties specified in a cabal.project file.
-- Possible values are:
-- none: Do not copy any properties from the cabal.project file.
-- some: Copy a subset of the properties from the cabal.project file. (Default)
-- The fields and sections that are copied over are:
--
-- * constraints
-- * allow-newer
-- * reorder-goals
-- * max-backjumps
-- * optimization
-- * source-repository-package
-- all: Copy every property from the cabal.project file.
copy-fields: some
-- Configure haskell-ci's behavior when presented multiple packages (e.g., a
-- cabal.project file that specifies multiple .cabal files), each of which
-- having its own range of GHC versions in its tested-with stanza.
-- Possible values are:
-- uniform: Every package must have the same range of versions in its
-- tested-with stanza. (Default)
-- any: Take the union of all packages' version ranges. This implies
-- that different packages' version ranges can be disjoint.
jobs-selection: uniform
-- Controls whether the haskell-ci version should be inserted into the
-- generated Travis YAML file. (Default: True)
--
-- We set this option to False here only to prevent version number churn in
-- the commit history, as version numbers for haskell-ci HEAD change extremely
-- frequently.
insert-version: False
-- Include these fields "as is" in generated cabal.project
raw-project
keep-going: False
package bytestring
tests: False
-- Mapping of GHC versions (used for prereleases)
ghc-version-mapping: 9.12.1:9.12.0.20241114