summaryrefslogtreecommitdiffstats
path: root/config.toml
blob: a5a0024e059448cbbb20fb7acc497a880f0b0c3f (plain)
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
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
# Example configuration file for butido

# Configuration and package definition compatibility
compatibility = "0.1.0"

# Format of the progress bars used.
# See https://docs.rs/indicatif/0.15.0/indicatif/#templates
# for how to customize this.
#
# Note that 40 is a nice width for the bar itself here, because that's 63
# characters before the actually {msg}, which gives the message enough space to
# fit a 80 or 100 character wide terminal!
#
# This is also the default if the setting is not present.
progress_format = "[{elapsed_precise}] ({percent:>3}%): {bar:40.cyan/blue} | {msg}"


# The shebang line used when compiling the packaging scripts
# Default if this value is not set is "#!/bin/bash".
# Can be overwritten temporarily via CLI
script_shebang = "#!/bin/bash"

# The number of log lines to show if a build fails.
# Defaults to 10
build_error_lines = 10

# The theme for the highlighting engine when printing the script that ran inside
# a container.
#
# Valid values:
#   "base16-ocean.dark"
#   "base16-eighties.dark"
#   "base16-mocha.dark"
#   "base16-ocean.light"
#   "InspiredGitHub"
#   "Solarized (dark)"
#   "Solarized (light)"
#
# If the value is not set, highlighting is disabled.
script_highlight_theme = "Solarized (dark)"

# An (optional) script or program that can lint the packaging script.
# This command gets the script on STDIN and might return 1 if there was an
# error.
# Stderr and stdout are printed to the user in this case.
#
# Simplest example:
# ```bash
# #!/bin/bash
# shellcheck -
# ```
#
# script_linter = "/path/to/scriptlinter"

# The format to print the found packages with.
#
# Possible tokens are:
#     i                         - Incrementing number of package that is printed
#     p                         - The package data
#     script                    - The rendered packaging script, variables embedded, highlighted and with line numbers (if requested via CLI flag)
#     print_runtime_deps        - Whether to print runtime dependencies
#     print_build_deps          - Whether to print buildtime dependencies

#     print_any                 - Whether any of _the following_ `print_*` variables is set to true
#     print_sources             - Whether to print sources
#     print_dependencies        - Whether to print dependencies
#     print_patches             - Whether to print patches
#     print_env                 - Whether to print env
#     print_flags               - Whether to print flags
#     print_allowed_images      - Whether to print allowed_images
#     print_denied_images       - Whether to print denied_images
#     print_phases              - Whether to print phases
#     print_script              - Whether to print script
#
#
# Note that the default value of this setting is rather sophisticated and you
# most certainly don't want to change this.
#
#
# Handlebars modifiers are available.
#package_print_format = ""

# The position of the release binaries
releases_root = "/tmp/releases"

# You can have several release stores, but you need to have at least one
# All release stores exist under "$releases/"
release_stores = [
    "default"
]

# The position of the staging binaries
staging = "/tmp/staging"

# The position where the sources are cached by butido.
source_cache = "/tmp/sources"

# The directory where butido puts plain text log files if requested
log_dir = "/tmp/logs"


# Enable strict script interpolation
#
# If this is set to true, the variable interpolation for the packaging script
# will be done in strict mode.
# Strict mode means, that referencing a variable that does not exist, will
# result in a rendering error.
#
# Default if this setting is missing is true
#
# Note:
#   This does only catch variable interpolation. Not errors in your script.
#
strict_script_interpolation = true


#
#
# Log database configuration
#
#

# Database configuration should be self-explanatory
database_host     = "localhost"
database_port     = 5432
database_user     = "pgdev"
database_password = "password"
database_name     = "butido"

# Set a database connection timeout
# If not set, this defaults to 30
#database_connection_timeout = 30


# Phases which can be configured in the packages

# This also defines the _order_ in which the phases are executed
# So for [ "foo", "bar" ], the phases are executed in this order:
#   foo
#   bar
#
# Phases which are not listed here are not executed at all.
available_phases = [ "unpack", "patch", "configure", "build", "fixup", "pack" ]


#
#
# Docker specific configuration
#
#

[docker]

# Images which can be used to build
# images not listed here are automatically rejected
images = [ "debian:bullseye" ]

#
# Verify whether the requested images are present
#
# This setting is twofold:
# First, it checks whether the image requested on the commandline (when
# building) is actually in the whitelist (`docker.images` setting in the
# configuration file).
# Second, it checks that every used endpoint actually has the requested image
# present.
# This check is done when setting up the connection to the endpoints, so this
# will fail _before_ any actual building starts.
#
verify_images_present = true


#
# List of docker endpoints
#

[docker.endpoints.testhostname]
uri           = "http://0.0.0.0:8095" # the URI of the endpoint. Either http or socket path
endpoint_type = "http" # either "http" or "socket"
# optional timeout for connecting to endpoint in seconds, default: 10 seconds
# timeout = 5

# maximum number of jobs running on this endpoint.
# Set this to a reasonable high number to be able to run a lot of small jobs.
# For example, if you're compiling with `make -j 1`, this should at least be the
# number of CPU cores, maybe a bit more (eg. (ncpu * 1.1))
#
# Also, if two nodes have the same number of running jobs, and a new job comes
# in, the node with more "free slots" will be considered first.
maxjobs       = 1


#
#
# Container specific settings
#
#

[containers]

# Restrict the environment that can be passed to the containers
#
# This is a security mechansim to prevent typos when passing environment
# variables (either from package definition or from CLI) to the build jobs in
# the containers.
#
# If this is set to `true`, only the variables named in `allowed_env` will be
# allowed to be passed to the container. If a variable is not in this list,
# butido will fail with an error message.
#
check_env_names = true

# Environment variables which are allowed to be passed to a container.
# This way, errors (typos) when passing environment to a build can be prevented.
# Double-check this list
allowed_env = [ "FOO", "BAR" ]

# Use the git author information and pass it to each container as environment
# variable.
# The information is passed with
#
#   Bob Baumeister <bob@meister.com>
#
# in the environment variable named as value here.
#
# If this is not set, this feature is disabled.
#git_author = "GIT_AUTHOR_INFO"

# Use the git hash of the repository and pass it to each container as
# environment variable.
# If this is not set, this feature is disabled.
#git_commit_hash = "GIT_COMMIT_HASH"