debian-mirror-gitlab/doc/architecture/blueprints/gitlab_ci_events/proposal-1-using-the-gitlab-ci-file.md
2023-07-09 08:55:56 +05:30

1.6 KiB

owning-stage description
~devops::verify GitLab CI Events Proposal 1: Using the .gitlab-ci.yml file

GitLab CI Events Proposal 1: Using the .gitlab-ci.yml file

Currently, we have two proof-of-concept (POC) implementations:

They both have similar ideas;

  1. Find a new CI Config syntax to define the pipeline events.

    Example 1:

    workflow:
      events:
        - events/package/published
    
    # or
    
    workflow:
      on:
        - events/package/published
    

    Example 2:

    spec:
      on:
        - events/package/published
        - events/package/removed
      # on:
      #   package: [published, removed]
    ---
    do_something:
      script: echo "Hello World"
    
  2. Upsert an event to the database when creating a pipeline.

  3. Create EventStore subscriptions to handle the events.

Problems & Questions

  1. The CI config of a project can be anything;

    • .gitlab-ci.yml by default
    • another file in the project
    • another file in another project
    • completely a remote/external file

    How do we handle these cases?

  2. Since we have these problems above, should we keep the events in its own file? (.gitlab-ci-events.yml)

  3. Do we only accept the changes in the main branch?

  4. We try to create event subscriptions every time a pipeline is created.

  5. Can we move the existing workflows into the new CI events, for example, merge_request_event?