# 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 # # 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"