InfoGrab Docs

외부 저장소를 위한 CI/CD

요약

GitLab CI/CD는 GitHub, Bitbucket Cloud 또는 기타 Git 서버와 함께 사용할 수 있습니다. 전체 프로젝트를 GitLab으로 이전하는 대신 외부 저장소를 연결하여 GitLab CI/CD의 이점을 누릴 수 있습니다.

GitLab CI/CD는 GitHub, Bitbucket Cloud 또는 기타 Git 서버와 함께 사용할 수 있습니다. 몇 가지 알려진 이슈가 있습니다.

전체 프로젝트를 GitLab으로 이전하는 대신 외부 저장소를 연결하여 GitLab CI/CD의 이점을 누릴 수 있습니다.

외부 저장소를 연결하면 저장소 미러링이 설정되고 이슈, 머지 리퀘스트, 위키 및 스니펫이 비활성화된 경량 프로젝트가 생성됩니다. 이러한 기능은 나중에 다시 활성화할 수 있습니다.

외부 저장소 연결#

외부 저장소에 연결하려면:

  1. 오른쪽 상단에서 Create new (+)와 New project/repository를 선택합니다.
  2. Run CI/CD for external repository를 선택합니다.
  3. GitHub 또는 Repository by URL을 선택합니다.
  4. 필드를 작성합니다.

Run CI/CD for external repository 옵션이 없는 경우:

  • GitLab 인스턴스에 가져오기 소스가 구성되어 있지 않을 수 있습니다. 관리자에게 가져오기 소스 구성을 확인하도록 요청하세요.
  • 프로젝트 미러링이 비활성화되어 있을 수 있습니다. 비활성화된 경우 관리자만 Run CI/CD for external repository 옵션을 사용할 수 있습니다. 관리자에게 프로젝트 미러링 구성을 확인하도록 요청하세요.

외부 풀 리퀘스트를 위한 파이프라인#

GitHub의 외부 저장소에서 GitLab CI/CD를 사용하는 경우 풀 리퀘스트의 컨텍스트에서 파이프라인을 실행할 수 있습니다.

GitHub의 원격 브랜치에 변경 사항을 푸시하면 GitLab CI/CD가 해당 브랜치에 대한 파이프라인을 실행할 수 있습니다. 그러나 해당 브랜치에 대한 풀 리퀘스트를 열거나 업데이트할 때 다음을 원할 수 있습니다:

  • 추가 job 실행.
  • 특정 job을 실행하지 않음.

예를 들어:

always-run:
  script: echo 'this should always run'

on-pull-requests:
  script: echo 'this should run on pull requests'
  rules:
    - if: $CI_PIPELINE_SOURCE == "external_pull_request_event"

except-pull-requests:
  script: echo 'This should not run for pull requests, but runs in other cases.'
  rules:
    - if: $CI_PIPELINE_SOURCE == "external_pull_request_event"
      when: never
    - when: on_success

외부 풀 리퀘스트를 위한 파이프라인 실행#

저장소를 GitHub에서 가져오면 GitLab이 pushpull_request 이벤트에 대한 웹훅을 구독합니다. pull_request 이벤트가 수신되면 풀 리퀘스트 데이터가 저장되어 참조로 유지됩니다. 풀 리퀘스트가 방금 생성된 경우 GitLab은 즉시 외부 풀 리퀘스트에 대한 파이프라인을 생성합니다.

풀 리퀘스트에서 참조하는 브랜치에 변경 사항이 푸시되고 풀 리퀘스트가 여전히 열려 있으면 외부 풀 리퀘스트에 대한 파이프라인이 생성됩니다.

이 경우 GitLab CI/CD는 2개의 파이프라인을 생성합니다. 하나는 브랜치 푸시를 위한 것이고 다른 하나는 외부 풀 리퀘스트를 위한 것입니다.

풀 리퀘스트가 닫힌 후에는 동일한 브랜치에 새 변경 사항이 푸시되더라도 외부 풀 리퀘스트에 대한 파이프라인이 생성되지 않습니다.

추가 미리 정의된 변수#

외부 풀 리퀘스트를 위한 파이프라인을 사용하면 GitLab이 파이프라인 job에 추가 미리 정의된 변수를 노출합니다.

변수 이름에는 CI_EXTERNAL_PULL_REQUEST_ 접두사가 붙습니다.

알려진 이슈#

이 기능은 다음을 지원하지 않습니다:

GitLab이 두 개의 파이프라인을 생성하기 때문에 열린 풀 리퀘스트를 참조하는 원격 브랜치에 변경 사항이 푸시되면 두 파이프라인 모두 GitHub 통합을 통해 풀 리퀘스트 상태에 기여합니다. 외부 풀 리퀘스트에서만 파이프라인을 실행하고 브랜치에서는 실행하지 않으려면 job 스펙에 except: [branches]를 추가할 수 있습니다. 자세히 읽기.

트러블슈팅#

외부 저장소를 위한 CI/CD

Tier: Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

GitLab CI/CD는 GitHub, Bitbucket Cloud 또는 기타 Git 서버와 함께 사용할 수 있습니다. 전체 프로젝트를 GitLab으로 이전하는 대신 외부 저장소를 연결하여 GitLab CI/CD의 이점을 누릴 수 있습니다.

GitLab CI/CD는 GitHub, Bitbucket Cloud 또는 기타 Git 서버와 함께 사용할 수 있습니다. 몇 가지 알려진 이슈가 있습니다.

전체 프로젝트를 GitLab으로 이전하는 대신 외부 저장소를 연결하여 GitLab CI/CD의 이점을 누릴 수 있습니다.

외부 저장소를 연결하면 저장소 미러링이 설정되고 이슈, 머지 리퀘스트, 위키 및 스니펫이 비활성화된 경량 프로젝트가 생성됩니다. 이러한 기능은 나중에 다시 활성화할 수 있습니다.

외부 저장소 연결#

외부 저장소에 연결하려면:

  1. 오른쪽 상단에서 Create new (+)와 New project/repository를 선택합니다.
  2. Run CI/CD for external repository를 선택합니다.
  3. GitHub 또는 Repository by URL을 선택합니다.
  4. 필드를 작성합니다.

Run CI/CD for external repository 옵션이 없는 경우:

  • GitLab 인스턴스에 가져오기 소스가 구성되어 있지 않을 수 있습니다. 관리자에게 가져오기 소스 구성을 확인하도록 요청하세요.
  • 프로젝트 미러링이 비활성화되어 있을 수 있습니다. 비활성화된 경우 관리자만 Run CI/CD for external repository 옵션을 사용할 수 있습니다. 관리자에게 프로젝트 미러링 구성을 확인하도록 요청하세요.

외부 풀 리퀘스트를 위한 파이프라인#

GitHub의 외부 저장소에서 GitLab CI/CD를 사용하는 경우 풀 리퀘스트의 컨텍스트에서 파이프라인을 실행할 수 있습니다.

GitHub의 원격 브랜치에 변경 사항을 푸시하면 GitLab CI/CD가 해당 브랜치에 대한 파이프라인을 실행할 수 있습니다. 그러나 해당 브랜치에 대한 풀 리퀘스트를 열거나 업데이트할 때 다음을 원할 수 있습니다:

  • 추가 job 실행.
  • 특정 job을 실행하지 않음.

예를 들어:

always-run:
  script: echo 'this should always run'

on-pull-requests:
  script: echo 'this should run on pull requests'
  rules:
    - if: $CI_PIPELINE_SOURCE == "external_pull_request_event"

except-pull-requests:
  script: echo 'This should not run for pull requests, but runs in other cases.'
  rules:
    - if: $CI_PIPELINE_SOURCE == "external_pull_request_event"
      when: never
    - when: on_success

외부 풀 리퀘스트를 위한 파이프라인 실행#

저장소를 GitHub에서 가져오면 GitLab이 pushpull_request 이벤트에 대한 웹훅을 구독합니다. pull_request 이벤트가 수신되면 풀 리퀘스트 데이터가 저장되어 참조로 유지됩니다. 풀 리퀘스트가 방금 생성된 경우 GitLab은 즉시 외부 풀 리퀘스트에 대한 파이프라인을 생성합니다.

풀 리퀘스트에서 참조하는 브랜치에 변경 사항이 푸시되고 풀 리퀘스트가 여전히 열려 있으면 외부 풀 리퀘스트에 대한 파이프라인이 생성됩니다.

이 경우 GitLab CI/CD는 2개의 파이프라인을 생성합니다. 하나는 브랜치 푸시를 위한 것이고 다른 하나는 외부 풀 리퀘스트를 위한 것입니다.

풀 리퀘스트가 닫힌 후에는 동일한 브랜치에 새 변경 사항이 푸시되더라도 외부 풀 리퀘스트에 대한 파이프라인이 생성되지 않습니다.

추가 미리 정의된 변수#

외부 풀 리퀘스트를 위한 파이프라인을 사용하면 GitLab이 파이프라인 job에 추가 미리 정의된 변수를 노출합니다.

변수 이름에는 CI_EXTERNAL_PULL_REQUEST_ 접두사가 붙습니다.

알려진 이슈#

이 기능은 다음을 지원하지 않습니다:

GitLab이 두 개의 파이프라인을 생성하기 때문에 열린 풀 리퀘스트를 참조하는 원격 브랜치에 변경 사항이 푸시되면 두 파이프라인 모두 GitHub 통합을 통해 풀 리퀘스트 상태에 기여합니다. 외부 풀 리퀘스트에서만 파이프라인을 실행하고 브랜치에서는 실행하지 않으려면 job 스펙에 except: [branches]를 추가할 수 있습니다. 자세히 읽기.

트러블슈팅#