파이프라인 편집기

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

파이프라인 편집기는 귀하의 저장소 루트에 있는 .gitlab-ci.yml 파일의 GitLab CI/CD 구성을 편집하는 주요 장소입니다. 편집기에 액세스하려면 빌드 > 파이프라인 편집기로 이동하세요.

파이프라인 편집기 페이지에서 다음을 수행할 수 있습니다:

  • 작업 대상 브랜치 선택
  • 파일 편집 중 구성 구문을 검증하기
  • include 키워드로 추가된 구성을 검증하는 더 깊은 린트 수행
  • include 키워드로 추가된 CI/CD 구성 목록 보기(#view-included-cicd-configuration).
  • 현재 구성의 시각화 보기
  • include로 추가된 구성을 포함하여 전체 구성 보기
  • 특정 브랜치에 대한 변경 내용 커밋하기

GitLab 13.9 및 이전 버전에서는 편집기를 사용하려면 이미 프로젝트의 기본 브랜치에 .gitlab-ci.yml 파일을 가져야 했습니다.

CI 구성 검증

파이프라인 구성을 편집하는 동안 지속적으로 GitLab CI/CD 파이프라인 스키마에 대해 검증됩니다. CI YAML 구성의 구문을 확인하고 기본적인 논리적 검증을 실시합니다.

이 검증의 결과는 편집기 페이지 상단에 표시됩니다. 구성이 잘못된 경우 문제를 해결하는 데 도움이 되는 설명이 표시됩니다:

CI 구성 검증 오류

CI 구성 린트

note
린트 탭은 GitLab 15.3에서 검증 탭으로 대체되었습니다. 린트 결과는 성공적인 파이프라인 시뮬레이션에 포함됩니다.

변경 사항을 커밋하기 전에 GitLab CI/CD 구성의 유효성을 테스트하려면 CI 린트 도구를 사용할 수 있습니다:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 빌드 > 파이프라인 편집기를 선택합니다.
  3. 린트 탭을 선택합니다.

이 도구는 구문 및 논리적 오류를 확인하지만 편집기의 자동 검증과 달리 자세히 확인합니다.

결과는 실시간으로 업데이트됩니다. 구성에 대한 모든 변경 사항이 CI 린트에 반영됩니다. 그것은 기존 CI Lint 도구와 동일한 결과를 표시합니다.

CI 구성의 린팅 오류

CI/CD 파이프라인 시뮬레이션

파이프라인 구문 및 논리 문제를 찾으려면 검증 탭에서 GitLab CI/CD 파이프라인을 시뮬레이션할 수 있습니다. 파이프라인 시뮬레이션을 통해 부정확한 rulesneeds 작업 종속성과 같은 문제를 찾을 수 있으며 CI 린트 도구의 시뮬레이션과 유사합니다.

포함된 CI/CD 구성 보기

파이프라인 편집기에서 include 키워드로 추가된 구성을 검토할 수 있습니다. 오른쪽 상단에서 파일 트리()를 선택하여 포함된 모든 구성 파일 목록을 볼 수 있습니다. 선택한 파일은 검토를 위해 새 탭에서 열립니다.

CI 구성 시각화

프로젝트에서 .gitlab-ci.yml 구성의 시각화를 보려면 빌드 > 파이프라인 편집기로 이동하고 시각화 탭을 선택하세요. 시각화는 모든 단계와 작업을 표시합니다. needs 관계는 작업을 연결하는 선으로 표시되어 실행 계층을 보여줍니다:

CI 구성 시각화

작업 위로 마우스를 올려놓으면 needs 관계가 강조됩니다:

CI 구성에 대한 시각화 호버

구성에 needs 관계가 없으면 이전 단계가 성공적으로 완료될 때 각 작업이 종속되므로 선이 그려지지 않습니다.

전체 구성 보기

모든 결합된 파일로 완전히 확장된 CI/CD 구성을 보려면 파이프라인 에디터의 전체 구성 탭으로 이동하십시오. 이 탭은 다음을 표시하는 확장된 구성을 표시합니다.

  • include로 가져온 구성이보기로 복사됩니다.
  • extends를 사용하는 작업은 작업으로 병합 된 확장된 구성이 표시됩니다.
  • YAML anchors가 연결된 구성으로 대체됩니다.
  • YAML !reference 태그도 연결된 구성으로 대체됩니다.

!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]
  • 전체 구성 탭에서 확장된 구성:
".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                                     # <- 추가적인 하이픈은 작업 실행에 영향을주지 않습니다.
  - pyflakes python/
  rules:
  - - if: "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME =~ /^feature/" # <- 추가적인 하이픈은 작업 실행에 영향을주지 않습니다.
    when: manual
    allow_failure: true
  - if: "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME"               # <- 추가적인 하이픈 없이 이전 규칙과 맞춰져 있습니다.
  - - if: $CI_COMMIT_BRANCH == "main"                          # <- 추가적인 하이픈은 작업 실행에 영향을주지 않습니다.
    when: manual
    allow_failure: true

CI 구성 변경 커밋하기

에디터의 각 탭 하단에 커밋 양식이 나타나므로 언제든지 변경 사항을 커밋할 수 있습니다.

변경 사항을 만족할 때, 설명적인 커밋 메시지를 추가하고 브랜치를 입력하십시오. 브랜치 필드는 프로젝트의 기본 브랜치로 기본 설정됩니다.

새 브랜치 이름을 입력하면 이 변경으로 새로운 병합 요청 시작 확인란이 나타납니다. 변경 사항을 커밋한 후 새로운 병합 요청을 시작하려면 선택하십시오.

신규 브랜치와 함께 커밋 양식

문제 해결

구성 유효성 검사 현재 사용 불가 메시지

이 메시지는 파이프라인 에디터에서 구문 유효성을 검사하는 중 문제가 발생한 것입니다. 다음 상황에 발생할 수 있습니다.

  • GitLab이 구문의 유효성을 검사하는 서비스와 통신할 수 없을 때, 다음 섹션에서 정보가 제대로 표시되지 않을 수 있습니다.
    • 편집 탭의 구문 상태(유효 또는 무효).
    • 시각화 탭.
    • 린팅 탭.
    • 전체 구성 탭.

    여전히 CI/CD 구성을 작업하고 수정한 변경 사항을 문제없이 커밋할 수 있습니다. 서비스가 다시 사용 가능하게되면 구문 유효성 검사가 즉시 표시됩니다.

  • include를 사용하고 있지만, 포함된 구성 파일이 루프를 만드는 경우. 예를 들어, .gitlab-ci.ymlfile1.yml을 포함하고, file1.yml에는 file2.yml를 포함하고, file2.ymlfile1.yml를 포함하여 file1.ymlfile2.yml 간에 루프를 만드는 경우입니다.

    루프를 제거하고 문제를 해결하기 위해 include 라인 중 하나를 제거하십시오.