Skip to main content

deploy.yml

FieldTypeRequiredDescription
envs[]EnvtrueThie field configures the pipeline for each environment, respectively.

Env

FieldTypeRequiredDescription
namestringtrueThis field is the runtime environment such as production, staging, and qa.
taskstringfalseThis field is used by the deployment system to distinguish the kind of deployment. Default is deploy. (Only for GitHub)
descriptionstringfalseThis field is the short description of the deployment. (Only for GitHub)
auto_mergebooleanfalseThis field is used to ensure that the requested ref is not behind the repository's default branch. If the ref is behind the default branch for the repository, GitHub will attempt to merge it for you. Default is true, but Gitploy set false for rollback. (Only for GitHub)
required_contexts[]stringfalseThis field allows you to specify a subset of contexts that must be success. Defaults to all unique contexts. (Only for GitHub)
payloadobject or stringfalseThis field is JSON payload with extra information about the deployment. Default is null. (Only for GitHub)
dyanmic_payloadDynamic PayloadfalseThis field dynamically generates JSON payload about the deployment.(Only for GitHub)
production_environmentbooleanfalseThis field specifies whether this runtime environment is production or not. Default is true.
auto_deploy_onstringfalseThis field controls auto-deployment behaviour given a ref(branch, SHA, tag). If any new push events are detected on this event, the deployment will be triggered. It supports the regular expression (re2). E.g. refs/heads/main or refs/tags/v.*
deployable_refstringfalseThis field specifies which the ref(branch, SHA, tag) is deployable or not. It supports the regular expression re2.
frozen_windows[]Frozen WindowfalseThis field configures to add a frozen window to prevent unintended deployment for the environment.
serializationbooleanfalseThis field forces only one deployment to run for the environment.
reviewReviewfalseThis field configures reviewers.

Review

FieldTypeRequiredDescription
enabledbooleanfalseThis field makes to enables the review feature. Default is false.
reviewers[]stringfalseThis field list up reviewers. Default is []. You should specify the maintainers of the project.

Frozen Window

FieldTypeRequiredDescription
startstringtrueThis field is a cron expression to indicate when the window starts. For example, 55 23 * * * means it starts to freeze a window before 5 minutes of midnight. You can check the documentation for details.
durationstringtrueThis field configures how long the window is frozen from the starting. The duration string is a possibly signed sequence of decimal numbers and a unit suffix such as 5m, or 1h30m. Valid time units are ns, us, ms, s, m, h.
locationstringfalseThis field configures the location of the start time. The value is taken to be a location name corresponding to a file in the IANA Time Zone database, such as America/New_York. Default is UTC. You can check the document for the Time Zone database name.

Dynamic Payload

FieldTypeRequiredDescription
enabledbooleantrueThis field enables the dynamic payload feature. The default value is false.
inputsbooleantrueThis field set the attributes for the input value.
inputs.*.requiredbooleantrueThis field forces a user to input a mandatory value.
inputs.*.typestringtrueThis field specifies the type of the input value. Choose one of the following: select, number, string, and boolean.
inputs.*.defaultanyfalseThis field specifies the default value of the input.
inputs.*.descriptionstringfalseThis field describes the input.
inputs.*.options[]stringfalseThis field specifies options for when the select type input.

Variables

The following variables are available in ${ } syntax when evaluating deploy.yml before deploy or rollback:

  • GITPLOY_DEPLOY_TASK: Returns deploy for deploy, but rollback, it returns the empty string.
  • GITPLOY_ROLLBACK_TASK: Returns rollback for rollback, but deploy, it returns the empty string.
  • GITPLOY_IS_ROLLBACK: Returns true for rollback, but deploy, it returns false.

Example usage of this:

envs:
- name: prod
task: "${GITPLOY_DEPLOY_TASK}${GITPLOY_ROLLBACK_TASK}:kubernetes" # It returns "deploy:kubernetes" or "rollback:kubernetes"

And Gitploy provides the string operation to facilitate customized values. You can check supported functions at here.

envs:
- name: prod
task: "${GITPLOY_DEPLOY_TASK=rollback}:kubernetes" # It returns "deploy:kubernetes" or "rollback:kubernetes"