Docs feedback: Clarify what a deployment job is
Throughout the docs, we talk about deployment jobs, with guidance about how to control them with things like Skip outdated deployment jobs. However, there is no clear definition of what makes a job a deployment job. It would be helpful to clarify what a deployment job is in the docs.
After looking into and with the benefit of this note in the Documentation for "Safe Deployments" issue, I believe I have determined what a deployment job is and I'd like to update the docs to include this definition.
That issue says, in part:
This actually brings us to your question - what's is "deployment job"? Currently, there are two actions are supported to
environment:action:
keywords, one isstart
, which indicates it's a deployment job.
Working Definition
A deployment job is a job that meets each of the conditions below:
- has the
environment
keyword - has the default
environment:action
ofstart
- docs
📋 Next Steps
-
Open MR: I am planning to open an MR to include the information above about what a deployment job is on the jobs page -- The MR is related to this issue and available as !64832 (merged). -
(Start to ) seek review of issue and MR
This question came up in the process of addressing a ticket
🌐 References
Places where we talk about deployment jobs
Some of these should be updated to point to the definition of deployment job once it exists.
- Pipeline settings: Skip outdated deployment jobs
- Pipeline settings: Retry outdated jobs
- Deployment safety: Ensure only one deployment job runs at a time
- Deployment safety: Skip outdated deployment jobs
- https://docs.gitlab.com/ee/user/project/canary_deployments.html#how-to-set-up-a-canary-ingress-in-a-canary-deployment
-
Deploy policy for canary environments - (in the notes about
INCREMENTAL_ROLLOUT_MODE
) - Prevent unintentional releases by setting a deploy freeze
-
Edit project API - (in the notes about
ci_forward_deployment_enabled
) - DAST API: Dynamic environment solutions
Example Deployment Jobs
Through out the docs, we have examples of deployment jobs in a few places.
This is not exhaustive.
Source | environment? | action other than start? | stage? |
---|---|---|---|
Environments: set dynamic environment URLs after a job finishes | Y | N | not specified (test ) |
Deployment Safety: Ensure only one deployment job runs at a time | N (this could just be an incomplete job) | N/A | not specified (test ) |
https://docs.gitlab.com/ee/ci/environments/deployment_safety.html#pipelines-jobs-fail-with-the-deployment-job-is-older-than-the-previously-succeeded-deployment-job | Y | N | not specified (test ) |