파이프라인 편집기

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

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

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

  • 작업할 브랜치 선택.
  • 파일을 편집하는 동안 구성 구문을 유효성 검사합니다.
  • include 키워드로 추가된 모든 구성을 확인하는 깊은 린트 수행.
  • include 키워드로 추가된 CI/CD 구성 디렉터리 확인.
  • 현재 구성의 시각화 확인.
  • 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 파이프라인 생성을 시뮬레이션할 수 있습니다. 파이프라인 시뮬레이션은 needs 작업 의존성과 같은 잘못된 rules를 찾는 데 도움이 되며 CI Lint 도구의 시뮬레이션과 유사합니다.

포함된 CI/CD 구성 보기

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

CI 구성 시각화

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

CI 구성 시각화

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

CI 구성 시각화에 대한 마우스 호버

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

전체 구성 보기

통합된 CI/CD 구성을 하나로 결합한 것을 보려면 파이프라인 편집기의 전체 구성 탭으로 이동하세요. 이 탭에는 다음이 표시됩니다:

!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 구성 변경 사항 커밋

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

변경 사항을 만족스러워하면 설명적인 커밋 메시지를 추가하고 브랜치를 입력하세요. 브랜치 필드는 프로젝트의 기본 브랜치로 기본 설정됩니다.

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

새 브랜치가 있는 커밋 양식

문제 해결

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

이 메시지는 파이프라인 편집기에서 구문을 유효성 검사하는 문제로 인해 발생합니다. 다음과 같은 경우에 발생할 수 있습니다:

  • GitLab이 구문을 검증하는 서비스와 통신하지 못하여 다음 섹션의 정보를 올바르게 표시하지 못하는 경우:

    • 편집 탭의 구문 상태(유효 또는 무효).
    • 시각화 탭.
    • 린트 탭.
    • 전체 구성 탭.

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

  • include를 사용하지만 포함된 구성 파일이 루프를 생성하는 경우. 예를 들어, .gitlab-ci.yml에서 file1.yml을 포함하고, file1.yml에서 file2.yml을 포함하는 등의 루프가 발생합니다.

    루프를 제거하고 문제를 해결하려면 include라인 중 하나를 제거하세요.