Monteur provides Release CI Job to release your packages into their respective
The objective of the job is simple: to release newly made packages into their respective distribution stores.
All users has to do is to issue this command:
Job Level Configurations
Montuer does facilitate a job-wide configurations file for configuring
Release 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
configalongside 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 Variables Section
Processing features. All variables defined in this job-wide
configuration file only visible to ALL Release 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:
Recipe Configuration File
All Release 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
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- select the built-in packager type for its corresponding release algorithm. For available built-in packager types, please refer to Packaging Meta Specification.
Recipe's Variables Section
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:
Recipe's Dependencies Checking Section
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 Release Meta Section
[Releases] are the list of packaged file
data to be released by executing the
table onto each of the item. All these packages shall be
iterated with the
[CMD] table supplied with
the given variables above.
will execute a preparation executions before executing
[CMD] for a package. This reduces the
need to build large
[CMD] commands list and
An example is as follows:
the table tag for the all the packages ready for release.
The directory path for housing the released data. This is used by local repository releases such as
This value shall be applied to all
Selecting checksum hasher.
Supported hashers are:
Allows some releaser to spin its required data structure.
The data file format for
Supported formats are:
The directory path for housing the release data file.
The filename will be a converted to filepath friendly app version (
App.Version) value like
v0-0-2.txtwhen set to be
List of packages complying to Package Meta Processing Specification.
Minimum MUST have 1
Recipe's Package Meta Section
The Monteur's Package Meta Processing
features. All the recipe's releases and meta commands
shall be executed horizontally across these packages
The data structure is complying to the Package Meta Processing Specification. Release CI Job requires you to at least define the following fields:
OS- define MINIMUM one operating system the package is for.
ARCH- define MINIMUM one CPU Architecture the package is for.
SOURCE- the full filepath of the package file.
TARGET- the directory/URL path for releasing the package.
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:
Currently, this is the last section of the recipe configuration file.
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: