파이프라인 편집기

Tier: Free, Premium, Ultimate Offering: GitLab.com, 자체관리, GitLab Dedicated

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

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

  • 작업할 브랜치 선택.
  • 파일을 편집하는 동안 구성 구문을 유효성 검사.
  • 린트를 수행하여 include 키워드로 추가된 구성을 확인합니다.
  • include 키워드로 추가된 CI/CD 구성 목록 확인.
  • 현재 구성의 시각화 확인.
  • </full configuration>, [`include`](../yaml/index.md#include)에서 추가된 구성과 함께 표시되는 전체 구성 확인.
  • 특정 브랜치로의 변경 커밋.

CI 구성 확인

파이프라인 구성을 편집하는 동안 계속해서 GitLab CI/CD 파이프라인 스키마를 통해 유효성을 검사합니다. 구문의 유효성을 확인하고 몇 가지 기본적인 논리적 유효성을 검사합니다.

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

CI 구성 유효성 검사 오류

CI 구성 린트

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

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

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

이 도구는 구문 및 논리적 오류를 확인하지만 편집기의 자동 유효성 검사와 달리 자세하게 설명합니다.

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

CI 구성 린트 오류

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

  • GitLab 15.3에서 도입되었습니다.

파이프라인 구문 및 논리 문제를 찾기 위해 유효성 검사 탭에서 GitLab CI/CD 파이프라인 생성을 시뮬레이션할 수 있습니다. 파이프라인 시뮬레이션을 사용하여 rulesneeds 작업 종속성과 같은 문제를 찾을 수 있으며 CI 린트 도구의 시뮬레이션과 유사합니다.

포함된 CI/CD 구성 보기

  • GitLab 15.0에서 flag 이름이 pipeline_editor_file_tree인 기능으로 도입되었습니다. 기본적으로 비활성화됩니다.
  • GitLab 15.1에서 기능 플래그가 제거되었습니다.

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

CI 구성 시각화

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

CI 구성 시각화

작업 위로 마우스를 올려놓아 needs 관계를 강조표시할 수 있습니다:

CI 구성 시각화 마우스 오버

구성에 needs 관계가 없는 경우 이전 단계가 성공적으로 완료되기만 하면 되므로 선은 그려지지 않습니다.

전체 구성 보기

  • GitLab 16.0에서 View merged YAML 탭이 전체 구성으로 이름이 변경되었습니다.

편집기의 전체 구성 탭으로 이동하여 하나의 결합된 CI/CD 구성을 전체 화면에서 볼 수 있습니다. 이 탭은: - include로 가져온 구성이 뷰에 복사됩니다. - extends를 사용하는 작업은 확장된 구성이 작업에 병합됩니다. - YAML anchors는 연결된 구성으로 대체됩니다. - YAML !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]
  • 전체 구성 탭의 확장된 구성:

    ".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.ymlfile2.yml을 포함하며, file2.ymlfile1.yml을 포함하여 file1.ymlfile2.yml 간에 루프를 만듭니다.

    루프를 없애고 이 문제를 해결하기 위해 include 줄 중 하나를 제거하세요.