Release
Monteur provides Release CI Job to release your packages into their respective
distribution stores.
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
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 Variables Section
The Monteur's
Variables
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:
|
|
[Variables]
- plain variables list complying to Montuer Plain Variables Definition.[FMTVariables]
- formattable variables list complying to Montuer Formattable Variables Definition.
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
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
- 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
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 Release Meta Section
[Releases]
are the list of packaged file
data to be released by executing the [CMD]
table onto each of the item. All these packages shall be
iterated with the [CMD]
table supplied with
the given variables above.
Depending on Metadata.Type
, either
archive
OR manual
, Monteur
will execute a preparation executions before executing
the [CMD]
for a package. This reduces the
need to build large [CMD]
commands list and
promotes consistency.
An example is as follows:
|
|
[Releases]
the table tag for the all the packages ready for release.
Target
The directory path for housing the released data. This is used by local repository releases such as
reprepro
.This value shall be applied to all
Releases.Packages
without theirTarget
value set.
Checksum
Selecting checksum hasher.
Supported hashers are:
sha256
(default),sha512
, orsha512->sha256
.
[Releases.Data]
Allows some releaser to spin its required data structure.
Releases.Data.Format
The data file format for
archive
release type.Supported formats are:
toml
,txt
, andcsv
.
Releases.Data.Path
The directory path for housing the release data file.
The filename will be a converted to filepath friendly app version (
App.Version
) value likev0.0.2
intov0-0-2.txt
when set to betxt
format.
[Releases.Packages]
List of packages complying to Package Meta Processing Specification.
Minimum MUST have 1
OS
, 1Arch
,Source
, andTarget
.
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
repeatedly.
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.
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: