Setup
Monteur provides Setup CI Job to setup and get the repository ready for work -
develop, test, build, package, release, etc.
The objective of the job is simple: to setup the repository
all the way for other CI Jobs with consistency, minimal efforts,
and now further instructions.
All users has to do is to issue this command:
|
|
Job Level Configurations
Montuer does facilitate a job-wide configurations file for configuring
Setup CI Job over all settings and supplying job-wide variables.
The configurations, by default, are stored in the data file located in:
|
|
The file MUST be strictly named
config
alongside with
the following supported data format's file extension. Currently,
Monteur offers the following supported formats, arranged in priority by
sequences:
.toml (TOML)
- https://github.com/toml-lang/toml
Job Level Download Settings
These settings affect all network downloads performances to avoid network starvation or abuses. The data structure of the settings are:
|
|
Limit
- Setting the total downloads limit at a time.0
or negative values denotes unlimited download activities.Timeout
- Instructs Monteur to bail out a network waiting and report as error after waiting a specific amount of time. The unit isnanosecond
. The value MUST be positive value. Setting0
or negative values denotes the default 2 minutes.
Example, for 2 minutes duration, it is2 x 60 x 1000 x 1000 x 1000 = 120000000000
.
Job Level Variables Section
The Monteur's
Variables
Processing features. All variables defined in this job-wide
configuration file only visible to ALL Setup CI Job
recipes. It is highly recommended to place all project-based
variables data into this list for recipes consistency purposes.
An example of the job-level variables section consists
of the following fields:
|
|
[Variables]
- plain variables list complying to Montuer Plain Variables Definition.[FMTVariables]
- formattable variables list complying to Montuer Formattable Variables Definition.
Recipe Configuration File
All Setup CI Job's recipe configuration files are stored in:
|
|
These files can have any filename BUT MUST STRICTLY HAVE any of the the following supported file extensions based on its data format of your choice:
.toml (TOML)
- https://github.com/toml-lang/toml
TOML
format.
Recipe's Metadata Section
The recipe's metadata section consists of the following fields:
|
|
Name
- used for recipe identification, reporting, and referencing usage. Monteur recommends keeping it short, concise and without any weird symbols (e.g. space will be replaced by short dash (-
)).Description
- mainly for logging and reporting purposes. Describe the details of the recipe.Type
- defines the dependency sourcing method. The availability and its working mechanics are detailed in Setup Meta Processing Specification.
Recipe's Variables Section
The Monteur's
Variables Processing Specification
features. All variables defined in this recipe's configuration
file are visible ONLY to this recipe. It is highly
recommended to abstract as much variables away from your
command algorithm as possible so that your user only has to
customize these tables and not messing with your algorithm.
The variables section consists of the following fields:
|
|
[Variables]
- plain variables list complying to Montuer Plain Variables Definition.[FMTVariables]
- formattable variables list complying to Montuer Formattable Variables Definition.
Recipe's Dependencies Checking Section
The Monteur's
Dependencies Checking
features. All 3rd-party dependencies are listed and checked here
against the running operating system for ensuring consistent
performances and executions of this recipe.
The data structure is compliant to
Dependencies Checking
Specification. Here is a sample for this recipe:
|
|
Recipe's Sources Section
The OPTIONAL list of sources' parameters. Its
existences is entirely depends on the previous
Metadata.Type
, where some types requires
it while some are not. The entire data structure are
compliant to Setup Meta
Processing Specification of
your selected Metadata.Type
.
If needed, the recipe's sources section consists of the
following fields:
|
|
Recipe's Commands Section
The list of executing commands complying to compliant to
Commands Execution Unit (CEU)
Specification. The commands are executed as instructed in
the key recipe sections, usually either execute as per se after
all meta processing OR being used to execute horizontally.
The data structure is entirely based on the
Commands Execution Unit (CEU)
Specification.
An example of this recipe's commands section would be:
|
|
Recipe's User Config Section
The recipe user config section is the operating system
specific user configuration script. The data structure
are detailed in Setup Meta
Processing Specification.
Here is an example of the recipe's user config section
consisting of the following fields:
|
|
Known Recipes
Instead of working on all the recipes from scratch, Monteur does maintain a number of existing and continuously improved recipes to kick-start your compatible deployment. Here are the available recipes: