파이프라인 에디터

파이프라인 에디터 (Pipeline editor)

파이프라인 에디터는 저장소 루트에 있는 .gitlab-ci.yml 파일에서 GitLab CI/CD 구성을 편집하는 기본 도구예요. 에디터에 접근하려면 Build > Pipeline editor로 이동하면 돼요.

파이프라인 에디터 페이지에서 다음을 할 수 있어요.

출처: 문서

본문

CI/CD 문법 검증하기

파이프라인 에디터를 사용하는 동안 파이프라인 구성 문법이 GitLab CI/CD 파이프라인 스키마에 맞게 지속적으로 검증돼요. CI/CD YAML 문법과 함께 몇 가지 기본적인 논리 검증도 확인돼요.

이 검증 결과는 에디터 페이지 상단에 표시돼요. 검증에 실패하면 이 섹션에 문제를 해결하는 데 도움이 되는 팁이 표시돼요.

CI/CD 구성 검증하기

변경 사항을 커밋하기 전에 GitLab CI/CD 구성의 유효성을 테스트하려면 파이프라인 에디터의 검증 도구를 사용해요. 이 도구는 Git 푸시 이벤트로 인한 파이프라인 생성 과정을 시뮬레이션하며, 잘못된 rulesneeds 잡 의존성 같은 논리 문제를 해결하는 데 도움이 돼요.

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾아요.
  2. 왼쪽 사이드바에서 Build > Pipeline editor를 선택해요.
  3. Validate 탭을 선택해요.
  4. (선택) Pipeline run source 드롭다운 목록을 사용해 시뮬레이션된 푸시 이벤트에 사용할 다른 브랜치를 선택해요.
  5. Validate pipeline을 선택해요.

시뮬레이션된 파이프라인은 Edit 탭의 기존 파이프라인 구성을 사용해요.

Edit 탭에 추가하지 않고 CI/CD YAML 스니펫만 검증하려면 CI Lint 도구를 대신 사용해요.

포함된 CI/CD 구성 보기

[include](/ci/yaml/#include) 키워드로 추가한 구성을 파이프라인 에디터에서 검토할 수 있어요. 오른쪽 위 모서리에서 파일 트리를 선택하면 포함된 모든 구성 파일의 목록이 표시돼요. 선택한 파일은 검토를 위해 새 탭에서 열려요.

CI/CD 구성 시각화하기

.gitlab-ci.yml 구성의 시각화를 보려면 프로젝트에서 Build > Pipeline editor로 이동한 다음 Visualize 탭을 선택해요. 시각화는 모든 스테이지와 잡을 보여줘요. [needs](/ci/yaml/#needs) 관계는 잡들을 연결하는 선으로 표시되어 실행 계층 구조를 보여줘요.

잡 위에 마우스를 올리면 그 잡의 needs 관계가 강조돼요.

구성에 needs 관계가 없으면 선이 그려지지 않아요. 각 잡이 이전 스테이지의 성공적인 완료에만 의존하기 때문이에요.

파이프라인 실행 정책(pipeline execution policies)의 잡은 프로젝트 .gitlab-ci.yml 구성에 정의되어 있지 않으므로 이 시각화에 표시되지 않아요.

전체 구성 보기

완전히 확장된 CI/CD 구성을 하나의 결합된 파일로 보려면 파이프라인 에디터의 Full configuration 탭으로 이동해요. 이 탭은 다음을 포함하는 확장된 구성을 표시해요.

  • [include](/ci/yaml/#include)로 가져온 구성이 뷰에 복사됨.
  • [extends](/ci/yaml/#extends)를 사용하는 잡은 확장된 구성이 잡에 병합된 상태로 표시됨.
  • YAML 앵커가 연결된 구성으로 대체됨.
  • [YAML !reference 태그](/ci/yaml/yaml_optimization/#reference-tags)도 연결된 구성으로 대체됨.
  • 조건부 규칙은 기본 브랜치 푸시 이벤트를 가정해 평가됨.

!reference 태그를 사용하면 확장된 뷰에서 줄 맨 앞에 여러 개의 하이픈(-)이 표시되는 중첩 구성이 생길 수 있어요. 이 동작은 정상이며, 추가 하이픈은 잡 실행에 영향을 주지 않아요. 예를 들어 다음 구성과 완전히 확장된 버전은 모두 유효해요.

  • .gitlab-ci.yml 파일:
.python-req:
  script:
    - pip install pyflakes

.rule-01:
  rules:
    - if: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME =~ /^feature/
      when: manual
      allow_failure: true
    - if: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME

.rule-02:
  rules:
    - if: $CI_COMMIT_BRANCH == "main"
      when: manual
      allow_failure: true

lint-python:
  image: python:latest
  script:
    - !reference [.python-req, script]
    - pyflakes python/
  rules:
    - !reference [.rule-01, rules]
    - !reference [.rule-02, rules]
  • Full configuration 탭의 확장된 구성:
".python-req":
  script:
  - pip install pyflakes
".rule-01":
  rules:
  - if: "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME =~ /^feature/"
    when: manual
    allow_failure: true
  - if: "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME"
".rule-02":
  rules:
  - if: $CI_COMMIT_BRANCH == "main"
    when: manual
    allow_failure: true
lint-python:
  image: python:latest
  script:
  - - pip install pyflakes                                     # <- The extra hyphens do not affect the job's execution.
  - pyflakes python/
  rules:
  - - if: "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME =~ /^feature/" # <- The extra hyphens do not affect the job's execution.
      when: manual
      allow_failure: true
    - if: "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME"               # <- No extra hyphen but aligned with previous rule
  - - if: $CI_COMMIT_BRANCH == "main"                          # <- The extra hyphens do not affect the job's execution.
      when: manual
      allow_failure: true

CI 구성 변경 사항 커밋하기

커밋 양식은 에디터의 각 탭 하단에 나타나서 언제든지 변경 사항을 커밋할 수 있어요.

변경 사항이 만족스러우면 설명이 포함된 커밋 메시지를 추가하고 브랜치를 입력해요. 브랜치 필드는 기본적으로 프로젝트의 기본 브랜치로 설정돼요.

새 브랜치 이름을 입력하면 Start a new merge request with these changes 체크박스가 나타나요. 이를 선택하면 변경 사항을 커밋한 후 새 머지 리퀘스트를 시작해요.

에디터 접근성 옵션

파이프라인 에디터는 Monaco Editor를 기반으로 하며, 여기에는 다음을 포함한 여러 접근성 기능이 있어요.

기능 Windows 또는 Linux 단축키 macOS 단축키 세부 사항
키보드 탐색 명령 목록 F1 F1 마우스 없이 에디터를 더 쉽게 사용할 수 있게 하는 명령 목록.
탭 트래핑 Control+m Control+Shift+m 탭 문자를 삽입하는 대신 페이지의 다음 포커스 가능 요소로 이동하도록 탭 트래핑을 활성화.

문제 해결

Unable to validate CI/CD configuration. 메시지

이 메시지는 파이프라인 에디터에서 문법 검증하는 데 문제가 있을 때 발생해요. GitLab이 문법을 검증하는 서비스와 통신할 수 없을 때 생길 수 있어요.

다음 섹션의 정보는 제대로 표시되지 않을 수 있어요.

  • Edit 탭의 문법 상태 (유효 또는 무효).
  • Visualize 탭.
  • Lint 탭.
  • Full configuration 탭.

CI/CD 구성 작업과 변경 사항 커밋은 문제 없이 계속할 수 있어요. 서비스를 다시 사용할 수 있게 되면 문법 검증이 바로 표시돼야 해요.

더 알아보기

파이프라인 에디터에서 검증과 관련된 기능을 더 깊게 보고 싶다면, 전체 구성에서 사용되는 includeextends, YAML 앵커 최적화에 대한 YAML 최적화 문서를 함께 보면 구성 재사용 패턴을 파악하기 좋아요.