Design the external job visuals
Release notes
Problem to solve
It is difficult to combine pull-based deployments with traditional CI/CD pipelines, due to differences around what is considered "done".
For example, a (simplified) traditional deployment might happen like this:
- Code is pushed to
main
- Pipeline "pushes" new code to infrastructure
Here, the state of the infrastructure depends on the state of the pipeline - if the pipeline was succesful, the new code is deployed. In a GitOps deployment, the direction is reversed:
- Code is pushed to
main
- Infrastructure "pulls" new code and applies changes
In this scenario, the infrastructure state depends on the state of the repository, which creates a problem when combined with a pipeline: The pipeline runs when code is pushed to the repository, but at this point we don't know the current reconciliation state. A pipeline must then poll the infrastructure to check if the desired state has been reached before it can proceed with additional tasks.
Intended users
User experience goal
A CI pipeline can contain jobs that represent a process that is executed by an external process, instead of a GitLab Runner. This will enable "hybrid" pipelines, that combine traditional CI tasks (for example, running tests) with Kubernetes deployment operations (waiting for desired state before proceeding).
Design Proposal
Job Details Page:
- Don't include for MVC.
- For Links: If the deployment is a "real" job, link to its details page, otherwise for an external job we can link to the pipeline.
Jobs List Page:
- For external jobs, add an
external
badge to the job column.
Pipeline Details Page:
- Add the word external to the tooltip of the job.
Further details
Permissions and Security
Documentation
Availability & Testing
Available Tier
Feature Usage Metrics
What does success look like, and how can we measure that?
What is the type of buyer?
Is this a cross-stage feature?
What is the competitive advantage or differentiation for this feature?
Links / references
This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.