Code Stream 관리자 또는 개발자는 Gerrit 트리거를 사용하여 Code Stream 클라우드 서비스를 Gerrit 코드 검토 수명 주기와 통합할 수 있습니다. 패치 집합을 생성하거나, 초안을 게시하거나, Gerrit 프로젝트에서 코드 변경 내용을 병합하거나, Git 분기에서 변경 내용을 직접 푸시하면 이벤트가 파이프라인이 실행되도록 트리거합니다.

Gerrit 트리거를 추가할 때 Gerrit 수신기, Gerrit 서버의 Gerrit 프로젝트를 선택하고 Gerrit 이벤트를 구성합니다. 이 예에서는 Gerrit 수신기를 먼저 구성한 다음, 세 가지 다른 파이프라인에서 두 개의 이벤트가 있는 Gerrit 트리거에서 해당 수신기를 사용합니다.

사전 요구 사항

프로시저

  1. Code Stream에서 트리거 > Gerrit을 클릭합니다.
  2. (선택 사항) 수신기 탭을 클릭한 후 새 수신기를 클릭합니다.
    참고: Gerrit 트리거에 사용할 Gerrit 수신기가 이미 정의된 경우 이 단계를 건너뜁니다.
    1. 프로젝트를 선택합니다.
    2. Gerrit 수신기의 이름을 입력합니다.
    3. Gerrit 끝점을 선택합니다.
    4. API 토큰을 입력합니다.
      CSP API 토큰은 Code Stream에 대한 외부 API 연결에 사용자를 인증합니다. API 토큰을 가져오려면:
      1. vRealize Automation Cloud에 로그인합니다.
      2. 이름 옆에 있는 드롭다운 화살표를 클릭합니다.
      3. 내 계정을 클릭합니다.
      4. API 토큰을 클릭합니다.
      5. 토큰 생성을 클릭합니다.
        1. 토큰 이름을 입력합니다.
        2. [조직 역할] 아래에서 조직 소유자를 선택합니다.
        3. [서비스 역할] 아래에서 VMware Code Stream을 클릭하여 확장하고 Code Stream 관리자를 선택합니다.
        4. 생성을 클릭합니다.

          Token Generated 창에는 사용자가 지정한 이름과 조직의 이름이 포함된 토큰이 표시됩니다.

      6. 복사 아이콘을 클릭합니다.

        복사를 클릭하면 정확한 문자열을 캡처할 수 있고 포인터를 사용하여 문자열을 복사하는 것보다 더 안정적입니다.

      변수를 생성한 경우 API 토큰은 달러 바인딩을 사용하여 입력한 변수 이름을 표시합니다. 토큰을 복사한 경우 API 토큰에 마스킹된 토큰이 표시됩니다.

      클라우드 인스턴스의 경우 Gerrit 트리거 수신기는 Gerrit 끝점과 API 토큰을 사용하며, 이것은 VMware Cloud Services 콘솔의 내 계정에서 생성할 수 있습니다.

    5. 토큰과 끝점 세부 정보를 검증하려면 검증을 클릭합니다.
      토큰은 90일 후에 만료됩니다.
    6. 생성을 클릭합니다.
    7. 수신기 카드에서 연결을 클릭합니다.
      수신기가 Gerrit 서버에서 모든 작업을 모니터링하기 시작하고 해당 서버에서 사용되도록 설정된 모든 트리거를 수신합니다. 서버에서 트리거 수신을 중지하려면 트리거를 사용하지 않도록 설정합니다.
  3. 트리거 탭을 클릭하고 새 트리거를 클릭합니다.
  4. Gerrit 서버에서 프로젝트를 선택합니다.
  5. 이름을 입력합니다.
    Gerrit 트리거 이름은 고유해야 합니다.
  6. 구성된 Gerrit 수신기를 선택합니다.
    Code Stream은 Gerrit 수신기를 사용하여 서버에서 사용할 수 있는 Gerrit 프로젝트 목록을 제공합니다.
  7. Gerrit 서버에서 프로젝트를 선택합니다.
  8. Gerrit 수신기가 모니터링할 저장소의 분기를 입력합니다.
  9. (선택 사항) 파일 포함 또는 제외를 트리거에 대한 조건으로 제공합니다.
    • 파이프라인을 트리거하는 파일 포함을 제공합니다. 포함 경로 또는 정규식에 지정된 파일과 일치하는 파일이 하나라도 커밋에 있으면 파이프라인이 트리거됩니다. 정규식을 지정하는 경우 Code Stream은 변경 집합 중 제공된 식과 일치하는 파일 이름에 대해서만 파이프라인을 트리거합니다. 정규식 필터는 단일 저장소의 여러 파이프라인에 대해 트리거를 구성할 때 유용합니다.
    • 파이프라인이 트리거되지 않도록 하는 파일 제외를 제공합니다. 커밋의 모든 파일이 제외 경로 또는 정규식에 지정된 파일과 일치하면 파이프라인이 트리거되지 않습니다.
    • 제외 우선 순위 지정, 설정하면 파이프라인이 트리거되지 않도록 합니다. 커밋의 파일이 제외 경로 또는 정규식에 지정된 파일과 일치하더라도 파이프라인이 트리거되지 않습니다. 제외 우선 순위 지정의 기본 설정은 꺼져 있습니다.
    조건이 파일 포함과 파일 제외를 모두 충족하면 파이프라인이 트리거되지 않습니다.

    다음 예에서 파일 포함과 파일 제외는 모두 트리거에 대한 조건입니다.

    파일 포함 및 파일 제외는 값이 있는 PLAIN 쌍 또는 REGEX 쌍으로 표시됩니다.

    • 파일 포함의 경우 runtime/src/main/a.java 또는 Java 파일에 대한 변경을 커밋하면 이벤트 구성에서 구성된 파이프라인이 트리거됩니다.
    • 파일 제외의 경우 두 파일에 대한 변경만 커밋하면 이벤트 구성에 구성된 파이프라인이 트리거되지 않습니다.
  10. 새 구성을 클릭합니다.
    1. Gerrit 이벤트의 경우 패치 집합 생성됨, 초안 게시됨 또는 변경 사항 병합됨을 선택합니다. 또는 Gerrit를 바이패스하는 Git로 직접 푸시하려면 직접 Git 푸시를 선택합니다.
    2. 트리거할 파이프라인을 선택합니다.
      사용자 지정 추가 입력 매개 변수가 파이프라인에 포함된 경우 [입력 매개 변수] 목록에 매개 변수 및 값이 표시됩니다. 트리거 이벤트를 사용하여 파이프라인에 전달될 입력 매개 변수에 대한 값을 입력할 수 있습니다. 또는 값을 비워 두거나 기본값을 사용할 수 있습니다.
      참고: 기본값이 정의된 경우:
      • 입력 매개 변수에 대해 입력하는 모든 값은 파이프라인 모델에서 정의된 기본값을 재정의합니다.
      • 파이프라인 모델의 매개 변수 값이 변경되어도 트리거 구성의 기본값은 변경되지 않습니다.

      Gerrit 트리거의 자동 삽입 입력 매개 변수에 대한 자세한 내용은 사전 요구 사항을 참조하십시오.

    3. 패치 집합 생성됨, 초안 게시됨, 변경 사항 병합됨의 경우 일부 작업은 기본적으로 레이블과 함께 나타납니다. 레이블을 변경하거나 설명을 추가할 수 있습니다. 그런 다음 파이프라인이 실행될 때 작업 탭에서 파이프라인에 대한 레이블 또는 설명이 작업 수행됨으로 표시됩니다.
    4. 저장을 클릭합니다.
    여러 파이프라인에 대해 여러 트리거 이벤트를 추가하려면 새 구성을 다시 클릭합니다.
    다음 예에서는 파이프라인 3개에 대한 이벤트를 볼 수 있습니다.
    • Gerrit 프로젝트에서 변경 사항 병합됨 이벤트가 발생하면 Gerrit-Pipeline이라는 파이프라인이 트리거됩니다.
    • Gerrit 프로젝트에서 패치 집합 생성됨 이벤트가 발생하면 Gerrit-Trigger-PipelineGerrit-Demo-Pipeline이라는 파이프라인이 트리거됩니다.

    Gerrit 수신기 및 트리거에 대한 구성에는 이벤트 유형과 트리거할 수 있는 파이프라인이 포함됩니다.

  11. 생성을 클릭합니다.
    Gerrit 트리거는 트리거 탭에 새 카드로 표시되며 기본적으로 사용 안 함으로 설정됩니다.
  12. 트리거 카드에서 사용을 클릭합니다.
    트리거를 사용하도록 설정한 후에는 Gerrit 수신기를 사용할 수 있습니다. 이것은 Gerrit 프로젝트의 분기에서 발생하는 이벤트 모니터링을 시작합니다.
    파일 포함 조건 또는 파일 제외 조건이 동일하지만 트리거를 생성할 때 포함한 것과 다른 저장소를 사용하는 트리거를 생성하려면 트리거 카드에서 작업 > 복제를 클릭합니다. 그런 다음 복제된 트리거에서 열기를 클릭하고 매개 변수를 변경합니다.

결과

축하합니다! 서로 다른 3개의 파이프라인에 있는 2개의 이벤트가 포함된 Gerrit 트리거를 구성했습니다.

다음에 수행할 작업

Gerrit 프로젝트의 코드 변경을 커밋했으면 Code Stream에서 Gerrit 이벤트에 대한 작업 탭을 관찰합니다. 작업 목록에 트리거 구성의 모든 파이프라인 실행에 해당하는 항목이 포함되어 있는지 확인합니다.

이벤트가 발생하면 특정 유형의 이벤트와 관련된 Gerrit 트리거의 파이프라인만 실행될 수 있습니다. 이 예에서 패치 집합이 생성되면 Gerrit-Trigger-PipelineGerrit-Demo-Pipeline만 실행됩니다.

작업 탭의 열에 있는 정보는 각 Gerrit 트리거 이벤트를 설명합니다. 테이블 아래에 나타나는 열 아이콘을 클릭하여 나타나는 열을 선택할 수 있습니다.
  • 트리거가 직접 Git 푸시였다면 제목 변경실행 열은 비어 있습니다.
  • Gerrit 트리거 열에는 이벤트를 생성한 트리거가 표시됩니다.
  • 수신기 열은 기본적으로 꺼져 있습니다. 이 옵션을 선택하면 이벤트를 수신한 Gerrit 수신기가 열에 표시됩니다. 단일 수신기는 여러 트리거와 연결된 것으로 나타날 수 있습니다.
  • 트리거 유형 열은 기본적으로 꺼져 있습니다. 이 옵션을 선택하면 열에 트리거 유형이 자동 또는 수동으로 표시됩니다.
  • 기타 열에는 커밋 시간, 변경#, 상태, 메시지, 작업 수행됨, 사용자, Gerrit 프로젝트, 분기이벤트가 있습니다.

Gerrit 트리거의 작업 탭에는 선택한 모든 열과 모든 작업 항목에 대한 관련 정보가 각 열에 표시됩니다.

완료된 또는 실패한 파이프라인 실행에 대한 작업을 제어하려면 [작업] 화면에서 항목 왼쪽에 있는 3개의 점을 클릭합니다.

  • 파이프라인 모델에 실수가 있거나 다른 문제로 인해 파이프라인이 실행되지 못하면 실수를 수정하고 다시 실행을 선택하면 파이프라인이 다시 실행됩니다.
  • 네트워크 연결 문제나 다른 문제로 인해 파이프라인이 실행되지 못할 때 재개를 선택하면 동일한 파이프라인 다시 시작되어 실행 시간이 절약됩니다.
  • 실행 보기를 사용하면 파이프라인 실행 보기가 열립니다. 파이프라인을 실행하고 결과를 보는 방법 항목을 참조하십시오.
  • [작업] 화면에서 항목을 삭제하려면 삭제를 사용합니다.

Gerrit 이벤트가 파이프라인을 트리거하지 못하면 수동으로 트리거를 클릭한 다음 Gerrit 트리거를 선택하고 변경 ID를 입력한 후 실행을 클릭합니다.

Gerrit 서버와 파이프라인 클라우드 프록시 간의 연결이 끊어지면 Gerrit 이벤트가 누락될 수 있습니다. 연결 끊김은 최대 10분 동안 지속될 수 있습니다. 연결 끊김은 Gerrit 서버가 업그레이드되거나 다시 시작되거나 파이프라인 클라우드 프록시가 업그레이드된 경우 발생할 수 있습니다.