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. As with all projects, the items mentioned on this page are subject to change or delay. The development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.
Status Authors Coach DRIs Owning Stage Created
proposed devops verify -

GitLab CI 이벤트 제안 4: 전용 구성 파일에서 구독 정의

각 프로젝트는 이벤트에 대한 구독을 정의하기 위한 전용 구성 파일을 가질 수 있습니다. 예를 들어 .gitlab-ci-event.yml입니다. 이 파일에서 우리는 다음 형식으로 이벤트를 정의할 수 있습니다.

events:
  - package/published
  - issue/created

이 프로젝트 리포지토리에서 이 파일이 변경되면 구문 분석되고 이벤트가 생성, 업데이트 또는 삭제됩니다. 이는 제안 1과 매우 유사하지만, 매번 파이프라인 생성을 추적할 필요가 없습니다.

  1. .gitlab-ci-event.yml이 업데이트되면 데이터베이스에 이벤트를 업서트합니다.
  2. 코드의 이벤트에 대한 인라인 반응을 생성하여 파이프라인을 트리거합니다.

작업 필터링

우리는 rules 키워드를 사용하여 작업을 필터링할 수 있습니다. 예를 들어:

test_package_published:
  script: echo testing published package
  rules:
    - events: ["package/published"]

test_package_removed:
  script: echo testing removed package
  rules:
    - events: ["package/removed"]

그렇지 않으면, CI 변수를 사용할 수 있습니다.

test_package_published:
  script: echo testing published package
  rules:
    - if: $CI_EVENT == "package/published"

test_package_removed:
  script: echo testing removed package
  rules:
    - if: $CI_EVENT == "package/removed"

또는 제안 3에서처럼 입력을 사용할 수 있습니다.

spec:
  inputs:
    event:
      default: push

---

test_package_published:
  script: echo testing published package
  rules:
    - if: $[[ inputs.event ]] == "package/published"

test_package_removed:
  script: echo testing removed package
  rules:
    - if: $[[ inputs.event ]] == "package/removed"

도전 과제

  1. 이는 GitLab.com 규모에서 작동하지 않을 것입니다.