This page contains information related to upcoming products, features, and functionality.
It is important to note that the information presented is for informational purposes only.
Please do not rely on this information for purchasing or planning purposes.
The development, release, and timing of any products, features, or functionality may be subject to change or delay and remain at the
sole discretion of GitLab Inc.
Status | Authors | Coach | DRIs | Owning Stage | Created |
---|---|---|---|---|---|
proposed | devops verify | - |
GitLab CI Events Proposal 3: Using the .gitlab/ci/events
folder
In this proposal we want to create separate files for each group of events. We can define events in the following format:
# .gitlab/ci/events/package-published.yml
spec:
events:
- name: package/published
---
include:
- local: .gitlab-ci.yml
with:
event: $[[ gitlab.event.name ]]
And in the .gitlab-ci.yml
file, we can use the input;
# .gitlab-ci.yml
spec:
inputs:
event:
default: push
---
job1:
script: echo "Hello World"
job2:
script: echo "Hello World"
job-for-package-published:
script: echo "Hello World"
rules:
- if: $[[ inputs.event ]] == "package/published"
When an event happens;
- We’ll enqueue a new job for the event.
- The job will search for the event file in the
.gitlab/ci/events
folder. - The job will run
Ci::CreatePipelineService
for the event file.
Problems & Questions
- For every defined event run, we need to enqueue a new job.
- Every event-job will need to search for files.
- This would be only for the project-scope events.
- This will not work for GitLab.com scale.