The Escape Plan

Everything starts with a plan. An Escape plan.

The Escape plan gets compiled into release metadata at build time.

FieldTypeDescription
namestringThe package name is a required field. The name can be qualified by a project name, but if no project is specified then the default project _ will be used.
Format: /([a-za-z]+[a-za-z0-9-]*\/)?[a-za-z]+[a-za-z0-9-]*/
Examples:
* Fully qualified: name: my-project/my-package
* Default project: name: my-package
versionstringThe version is a required field. Escape uses semantic versioning to version packages. Either specify the full version or use the ‘@’ symbol to let Escape pick the next version at build time. See here for more versioning approaches.
Format: /[0-9]+(\.[0-9]+)*(\.@)?/
Examples:
* Build version 1.5: version: 1.5
* Build the next minor release in the 1.* series: version: 1.@
* Build the next patch release in the 1.1.* series: version: 1.1.@
descriptionstringA description for this package. Only used for presentation purposes.
logostringA path to an image. Only used for presentation purposes.
licensestringThe license. For example Apache Software License, BSD License, GPLv3, etc. Currently no input validation is performed on this field.
metadata{string:string}Metadata key value pairs.
Escape Script can be used to programmatically set values using the default context.
Example:
metadata: author: Fictional Character co_author: $dependency.metadata.author
depends[string], DependenciesReference depedencies by their full ID or use the @ symbol to resolve versions at build time.
extends[string], Extensions
includes[string]The files to includes in this release. The files don’t have to exist and can be produced during build time. Globbing patterns are supported. Directories are added recursively.
generates[string]Files that are generated during the build phase. Globbing patterns are supported. Directories are added recursively. The main reason to use this over includes is that the generates field is copied to the parent release, when a release gets extended, but includes aren’t.
provides[string], ConsumersThe release can declare zero or more providers so that consumers can loosely depend on it at deploy time.
consumes[string], ConsumersAt deploy time a package can consume zero or more providers from the target environment.
build_consumes[string], ConsumersSame as consumes, but scoped to the build stage (ie. the consumer is not required/available at deploy time).
deploy_consumes[string], ConsumersSame as consumes, but scoped to the deploy stage (ie. the consumer is not required/available at build time).
inputs[string], VariablesInput variables.
build_inputs[string], VariablesSame as inputs, but all variables are scoped to the build phase (ie. the variables won’t be required/available at deploy time).
deploy_inputs[string], VariablesSame as inputs, but all variables are scoped to the deployment phase (ie. the variables won’t be required/available at build time).
outputs[string], VariablesOutput variables.
build_outputs[any]Same as outputs, but all variables are scoped to the build phase (ie. the variables won’t be required/available at deploy time).
deploy_outputs[any]Same as outputs, but all variables are scoped to the deployment phase (ie. the variables won’t be required/available at build time).
buildanyBuild script.
pre_buildanyPre-build script. The script has access to all the build scoped input variables.
post_buildanyPost-build script. The script has access to all the build scoped input and output variables.
testanyTest script. Generally run after a build as part of the release process, but can be triggered separately using escape run test. The script has access to all the build scoped input and output variables.
deployanyDeploy script. The script has access to the deployment input variables, and can define outputs by writing a JSON object to .escape/outputs.json.
pre_deployanyPre-deploy script. The script has access to all the deploy scoped input variables.
post_deployanyPost-deploy script. The script has access to all the deploy scoped input and output variables.
activate_provideranyActivate provider script. This script is run when this release is being consumed as a provider by another release during a build or deployment. The script has access to all the deploy scoped input and output variables.
deactivate_provideranyDeactive provider script. This script is run when this release is being done being consumed by another release using it as a provider. The script has access to all the deploy scoped input and output variables.
smokeanySmoke test script.
destroyanyDestroy script.
pre_destroyanyPre-destroy script.
post_destroyanyPost-destroy script.
errands{string:Errands}Errands are scripts that can be run against the deployment of this release. The scripts receive the deployment’s inputs and outputs as environment variables.
templatesTemplatesTemplates.
build_templatesTemplatesSame as templates, but all the templates are scoped to the build stage (ie. templates won’t be rendered at deploy time).
deploy_templatesTemplatesSame as templates, but all the templates are scoped to the deploy stage (ie. templates won’t be rendered at deploy time).
downloadsDownloadsDownloads.