[...matchN(1, [string, close({
job!: string
artifacts?: bool
optional?: bool
parallel?: #parallel_matrix
}), close({
pipeline!: string
job!: string
artifacts?: bool
parallel?: #parallel_matrix
}), close({
job!: string
project!: string
ref!: string
artifacts?: bool
parallel?: #parallel_matrix
}), #."!reference"])]The list of jobs in previous stages whose sole completion is needed to start the current job.
Specify a list of job names from earlier stages from which artifacts should be loaded. By default, all previous artifacts are passed. Use an empty array to skip downloading artifacts.
matchN(1, [string, close({
name!: strings.MinRunes(1)
url?: net.AbsURL & {
=~"^(https?://.+|\\$[A-Za-z]+)"
}
on_stop?: string
action?: "start" | "prepare" | "stop" | "verify" | "access"
auto_stop_in?: string
kubernetes?: {
agent?: string
namespace?: strings.MinRunes(1)
flux_resource_path?: string
managed_resources?: {
enabled?: bool
...
}
dashboard?: {
namespace?: strings.MinRunes(1)
flux_resource_path?: string
...
}
...
}
deployment_tier?: string
})])Used to associate environment metadata with a deploy. Environment can have a name and URL attached to it, and will be displayed under /environments under the project.
Indicates that the job creates a Release.
Message to use if creating a new annotated tag.
Specifies the longer description of the Release.
The title of each milestone the release is associated with.
time.Time & {
=~"^(?:[1-9]\\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z|[+-][01]\\d:[0-5]\\d)$"
}The date and time when the release is ready. Defaults to the current date and time if not defined. Should be enclosed in quotes and expressed in ISO 8601 format.
Limit job concurrency. Can be used to ensure that the Runner will not run certain jobs simultaneously.
matchN(1, [close({
project!: =~"(?:\\S/\\S|\\$\\S+)"
branch?: string
strategy?: "depend" | "mirror"
inputs?: #inputs
forward?: close({
yaml_variables?: bool
pipeline_variables?: bool
})
branch?: _
if branch != _|_ // explicit error (_|_ literal) in source
{
project!: _
}
{}
}), close({
include?: matchN(1, [net.URL & =~"\\.ya?ml$", list.MaxItems(3) & [...matchN(1, [close({
local!: net.URL & {
=~"\\.ya?ml$"
}
inputs?: #inputs
}), close({
template!: net.URL & {
=~"\\.ya?ml$"
}
inputs?: #inputs
}), close({
artifact!: net.URL & {
=~"\\.ya?ml$"
}
job!: string
inputs?: #inputs
}), close({
project!: =~"(?:\\S/\\S|\\$\\S+)"
ref?: strings.MinRunes(1)
file!: net.URL & {
=~"\\.ya?ml$"
}
inputs?: #inputs
}), close({
component!: net.URL
inputs?: #inputs
}), close({
remote!: net.URL & {
=~"^https?://.+\\.ya?ml$"
}
inputs?: #inputs
})])]])
strategy?: "depend" | "mirror"
forward?: close({
yaml_variables?: bool
pipeline_variables?: bool
})
}), =~"(?:\\S/\\S|\\$\\S+)"])matchN(1, [bool, close({
exit_codes!: int
}), close({
exit_codes!: list.UniqueItems() & [_, ...] & [...int]
})])null | close({
paths?: [...string] & [_, ...]
exclude?: [...string] & [_, ...]
expose_as?: string
name?: string
untracked?: bool
when?: "on_success" | "on_failure" | "always"
access?: "none" | "developer" | "maintainer" | "all"
expire_in?: string
reports?: close({
accessibility?: string
annotations?: string
junit?: matchN(1, [string, [...string] & [_, ...]])
browser_performance?: string
coverage_report?: null | {
coverage_format?: "cobertura" | "jacoco"
path?: strings.MinRunes(1)
...
}
codequality?: #string_file_list
dotenv?: #string_file_list
lsif?: #string_file_list
sast?: #string_file_list
dependency_scanning?: #string_file_list
container_scanning?: #string_file_list
dast?: #string_file_list
license_management?: #string_file_list
license_scanning?: #string_file_list
requirements?: #string_file_list
secret_detection?: #string_file_list
metrics?: #string_file_list
terraform?: #string_file_list
cyclonedx?: #string_file_list
load_performance?: #string_file_list
repository_xray?: #string_file_list
})
}){
{
[=~".*"]: matchN(1, [matchN(3, [#baseInput, null | bool | number | string | [...] | {
rules?: [...{
...
}]
...
}, matchN(4, [matchIf(null | bool | number | string | [...] | {
type?: "string"
...
}, null | bool | number | string | [...] | {
default?: null | string
...
}, _), matchIf(null | bool | number | string | [...] | {
type?: "number"
...
}, null | bool | number | string | [...] | {
default?: null | number
...
}, _), matchIf(null | bool | number | string | [...] | {
type?: "boolean"
...
}, null | bool | number | string | [...] | {
default?: null | bool
...
}, _), matchIf(null | bool | number | string | [...] | {
type?: "array"
...
}, null | bool | number | string | [...] | {
default?: null | [...]
...
}, _)])]), null])
}
...
}[...matchN(>=1, [matchN(1, ["branches", "tags", "api", "external", "pipelines", "pushes", "schedules", "triggers", "web"]), string])]
Filter job by different keywords that determine origin or state, or by supplying string/regex to check against branch/tag names.
{
[=~".*"]: matchN(1, [bool | number | string, close({
value?: string
options?: list.UniqueItems() & [...string] & [_, ...]
description?: string
expand?: bool
})])
}
...{
[=~".*"]: close({
aud!: matchN(1, [string, list.UniqueItems() & [...string] & [_, ...]])
})
}
...matchN(1, [strings.MinRunes(1), close({
name!: strings.MinRunes(1)
entrypoint?: [_, ...]
docker?: close({
platform?: strings.MinRunes(1)
user?: strings.MinRunes(1) & strings.MaxRunes(255)
})
kubernetes?: close({
user?: int | strings.MinRunes(1) & strings.MaxRunes(255)
})
pull_policy?: matchN(1, ["always" | "never" | "if-not-present", list.UniqueItems() & [..."always" | "never" | "if-not-present"] & [_, ...]])
})])null | [...matchN(>=1, [close({
if?: #if
changes?: #changes
exists?: #exists
when?: matchN(1, ["never" | "always", null])
}), strings.MinRunes(1), [_, ...] & [...string]])]matchN(1, [matchN(>=1, [=~"^https?://", string & matchN(0, [null | bool | number | =~"^\\w+://" | [...] | {
...
}])]) & net.URL & =~"\\w\\.ya?ml$", close({
local!: net.URL & {
=~"\\.ya?ml$"
}
rules?: #includeRules
inputs?: #inputs
}), close({
project!: =~"(?:\\S/\\S|\\$\\S+)"
ref?: string
file!: matchN(1, [=~"\\.ya?ml$", [...=~"\\.ya?ml$"]])
rules?: #includeRules
inputs?: #inputs
}), close({
template!: net.URL & {
=~"\\.ya?ml$"
}
rules?: #includeRules
inputs?: #inputs
}), close({
component!: net.URL
rules?: #includeRules
inputs?: #inputs
}), close({
remote!: net.URL & {
=~"^https?://.+\\.ya?ml$"
}
integrity?: =~"^sha256-[A-Za-z0-9+/]{43}=$"
rules?: #includeRules
inputs?: #inputs
})])[...matchN(1, [string, close({
job!: string
artifacts?: bool
optional?: bool
parallel?: #parallel_matrix
}), close({
pipeline!: string
job!: string
artifacts?: bool
parallel?: #parallel_matrix
}), close({
job!: string
project!: string
ref!: string
artifacts?: bool
parallel?: #parallel_matrix
}), #."!reference"])]The list of jobs in previous stages whose sole completion is needed to start the current job.
Specify a list of job names from earlier stages from which artifacts should be loaded. By default, all previous artifacts are passed. Use an empty array to skip downloading artifacts.
matchN(1, [string, close({
name!: strings.MinRunes(1)
url?: net.AbsURL & {
=~"^(https?://.+|\\$[A-Za-z]+)"
}
on_stop?: string
action?: "start" | "prepare" | "stop" | "verify" | "access"
auto_stop_in?: string
kubernetes?: {
agent?: string
namespace?: strings.MinRunes(1)
flux_resource_path?: string
managed_resources?: {
enabled?: bool
...
}
dashboard?: {
namespace?: strings.MinRunes(1)
flux_resource_path?: string
...
}
...
}
deployment_tier?: string
})])Used to associate environment metadata with a deploy. Environment can have a name and URL attached to it, and will be displayed under /environments under the project.
Indicates that the job creates a Release.
Message to use if creating a new annotated tag.
Specifies the longer description of the Release.
The title of each milestone the release is associated with.
time.Time & {
=~"^(?:[1-9]\\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z|[+-][01]\\d:[0-5]\\d)$"
}The date and time when the release is ready. Defaults to the current date and time if not defined. Should be enclosed in quotes and expressed in ISO 8601 format.
Limit job concurrency. Can be used to ensure that the Runner will not run certain jobs simultaneously.
matchN(1, [close({
project!: =~"(?:\\S/\\S|\\$\\S+)"
branch?: string
strategy?: "depend" | "mirror"
inputs?: #inputs
forward?: close({
yaml_variables?: bool
pipeline_variables?: bool
})
branch?: _
if branch != _|_ // explicit error (_|_ literal) in source
{
project!: _
}
{}
}), close({
include?: matchN(1, [net.URL & =~"\\.ya?ml$", list.MaxItems(3) & [...matchN(1, [close({
local!: net.URL & {
=~"\\.ya?ml$"
}
inputs?: #inputs
}), close({
template!: net.URL & {
=~"\\.ya?ml$"
}
inputs?: #inputs
}), close({
artifact!: net.URL & {
=~"\\.ya?ml$"
}
job!: string
inputs?: #inputs
}), close({
project!: =~"(?:\\S/\\S|\\$\\S+)"
ref?: strings.MinRunes(1)
file!: net.URL & {
=~"\\.ya?ml$"
}
inputs?: #inputs
}), close({
component!: net.URL
inputs?: #inputs
}), close({
remote!: net.URL & {
=~"^https?://.+\\.ya?ml$"
}
inputs?: #inputs
})])]])
strategy?: "depend" | "mirror"
forward?: close({
yaml_variables?: bool
pipeline_variables?: bool
})
}), =~"(?:\\S/\\S|\\$\\S+)"])struct.MaxFields(50) & {
{
[=~".*"]: matchN(3, [#baseInput, null | bool | number | string | [...] | {
default!: _
...
}, matchN(4, [matchIf(null | bool | number | string | [...] | {
type?: "string"
...
}, null | bool | number | string | [...] | {
default?: string
...
}, _), matchIf(null | bool | number | string | [...] | {
type?: "number"
...
}, null | bool | number | string | [...] | {
default?: number
...
}, _), matchIf(null | bool | number | string | [...] | {
type?: "boolean"
...
}, null | bool | number | string | [...] | {
default?: bool
...
}, _), matchIf(null | bool | number | string | [...] | {
type?: "array"
...
}, null | bool | number | string | [...] | {
default?: [...]
...
}, _)])])
}
...
}{
{
[=~".*"]: matchN(1, [bool | number | string, close({
value?: string
expand?: bool
})])
}
...
}[...matchN(1, [string, close({
job!: string
artifacts?: bool
optional?: bool
parallel?: #parallel_matrix
}), close({
pipeline!: string
job!: string
artifacts?: bool
parallel?: #parallel_matrix
}), close({
job!: string
project!: string
ref!: string
artifacts?: bool
parallel?: #parallel_matrix
}), #."!reference"])]The list of jobs in previous stages whose sole completion is needed to start the current job.
Specify a list of job names from earlier stages from which artifacts should be loaded. By default, all previous artifacts are passed. Use an empty array to skip downloading artifacts.
matchN(1, [string, close({
name!: strings.MinRunes(1)
url?: net.AbsURL & {
=~"^(https?://.+|\\$[A-Za-z]+)"
}
on_stop?: string
action?: "start" | "prepare" | "stop" | "verify" | "access"
auto_stop_in?: string
kubernetes?: {
agent?: string
namespace?: strings.MinRunes(1)
flux_resource_path?: string
managed_resources?: {
enabled?: bool
...
}
dashboard?: {
namespace?: strings.MinRunes(1)
flux_resource_path?: string
...
}
...
}
deployment_tier?: string
})])Used to associate environment metadata with a deploy. Environment can have a name and URL attached to it, and will be displayed under /environments under the project.
Indicates that the job creates a Release.
Message to use if creating a new annotated tag.
Specifies the longer description of the Release.
The title of each milestone the release is associated with.
time.Time & {
=~"^(?:[1-9]\\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z|[+-][01]\\d:[0-5]\\d)$"
}The date and time when the release is ready. Defaults to the current date and time if not defined. Should be enclosed in quotes and expressed in ISO 8601 format.
Limit job concurrency. Can be used to ensure that the Runner will not run certain jobs simultaneously.
matchN(1, [close({
project!: =~"(?:\\S/\\S|\\$\\S+)"
branch?: string
strategy?: "depend" | "mirror"
inputs?: #inputs
forward?: close({
yaml_variables?: bool
pipeline_variables?: bool
})
branch?: _
if branch != _|_ // explicit error (_|_ literal) in source
{
project!: _
}
{}
}), close({
include?: matchN(1, [net.URL & =~"\\.ya?ml$", list.MaxItems(3) & [...matchN(1, [close({
local!: net.URL & {
=~"\\.ya?ml$"
}
inputs?: #inputs
}), close({
template!: net.URL & {
=~"\\.ya?ml$"
}
inputs?: #inputs
}), close({
artifact!: net.URL & {
=~"\\.ya?ml$"
}
job!: string
inputs?: #inputs
}), close({
project!: =~"(?:\\S/\\S|\\$\\S+)"
ref?: strings.MinRunes(1)
file!: net.URL & {
=~"\\.ya?ml$"
}
inputs?: #inputs
}), close({
component!: net.URL
inputs?: #inputs
}), close({
remote!: net.URL & {
=~"^https?://.+\\.ya?ml$"
}
inputs?: #inputs
})])]])
strategy?: "depend" | "mirror"
forward?: close({
yaml_variables?: bool
pipeline_variables?: bool
})
}), =~"(?:\\S/\\S|\\$\\S+)"])Use the `needs:parallel:matrix` keyword to specify parallelized jobs needed to be completed for the job to run. [Learn More](https://docs.gitlab.com/ci/yaml/#needsparallelmatrix)
matchN(1, ["always", "unknown_failure", "script_failure", "api_failure", "stuck_or_timeout_failure", "runner_system_failure", "runner_unsupported", "stale_schedule", "job_execution_timeout", "archived_failure", "unmet_prerequisites", "scheduler_failure", "data_integrity_failure"])
The number of times the job will be retried if it fails. Defaults to 0 and can max be retried 2 times (3 times total).
null | [...matchN(>=1, [close({
if?: #if
changes?: #changes
exists?: #exists
variables?: #rulesVariables
when?: #when
start_in?: #start_in
allow_failure?: #allow_failure
needs?: #rulesNeeds
interruptible?: #interruptible
}), strings.MinRunes(1), [_, ...] & [...string]])][...matchN(1, [string, close({
job!: strings.MinRunes(1)
artifacts?: bool
optional?: bool
})])]{
{
[=~".*"]: matchN(>=1, [{
vault!: _
...
}, {
azure_key_vault!: _
...
}, {
gcp_secret_manager!: _
...
}, {
aws_secrets_manager!: _
...
}, {
gitlab_secrets_manager!: _
...
}]) & close({
vault?: matchN(1, [string, close({
engine!: {
name!: string
path!: string
...
}
path!: string
field!: string
})])
gcp_secret_manager?: close({
name!: string
version?: matchN(1, [string, int])
})
azure_key_vault?: close({
name!: string
version?: string
})
aws_secrets_manager?: matchN(1, [string, close({
secret_id!: string
version_id?: string
version_stage?: string
region?: string
role_arn?: string
role_session_name?: string
field?: string
})])
gitlab_secrets_manager?: close({
name!: string
source?: string
})
file?: bool
token?: string
gcp_secret_manager?: _
if gcp_secret_manager != _|_ // explicit error (_|_ literal) in source
{
token!: _
}
{}
})
}
...
}[...matchN(1, [strings.MinRunes(1), close({
name!: strings.MinRunes(1)
entrypoint?: [_, ...] & [...string]
docker?: close({
platform?: strings.MinRunes(1)
user?: strings.MinRunes(1) & strings.MaxRunes(255)
})
kubernetes?: close({
user?: int | strings.MinRunes(1) & strings.MaxRunes(255)
})
pull_policy?: matchN(1, ["always" | "never" | "if-not-present", list.UniqueItems() & [..."always" | "never" | "if-not-present"] & [_, ...]])
command?: #script
alias?: strings.MinRunes(1)
variables?: #jobVariables
})])]matchN(1, [matchN(1, [matchN(0, [null | bool | number | string | [...] | {
func!: _
...
}]) & {
step!: _
...
}, matchN(0, [null | bool | number | string | [...] | {
step!: _
...
}]) & {
func!: _
...
}]) & close({
name!: #stepName
env?: #stepNamedStrings
inputs?: #stepNamedValues
step?: #stepFuncReference
func?: #stepFuncReference
}), close({
name!: #stepName
env?: #stepNamedStrings
script!: strings.MinRunes(1)
})])Any of these function use cases are valid.
OCIReference is a reference to a function hosted in an OCI repository.
A path within the registry containing related OCI images. Typically the namespace, project, and image name.
Define the rules for when pipeline should be automatically cancelled.
Define what stage the job will run in.