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 이벤트 제안 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 규모에서 작동하지 않을 것입니다.