

Amazon CodeCatalyst는 더 이상 신규 고객에게 공개되지 않습니다. 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. 자세한 내용은 [CodeCatalyst에서 마이그레이션하는 방법](migration.md) 단원을 참조하십시오.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 워크플로에 트리거 추가
<a name="workflows-add-trigger-add"></a>

다음 지침에 따라 Amazon CodeCatalyst 워크플로에 푸시, 풀 또는 일정 트리거를 추가합니다.

트리거에 대한 자세한 내용은 [트리거를 사용하여 워크플로 실행 자동 시작](workflows-add-trigger.md) 주제를 참조하세요.

------
#### [ Visual ]<a name="workflows-add-trigger-add-console"></a>

**트리거 추가(시각 편집기)**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/)에서 CodeCatalyst 콘솔을 엽니다.

1. 프로젝트를 선택합니다.

1. 탐색 창에서 **CI/CD**를 선택한 다음 **워크플로**를 선택합니다.

1. 워크플로의 이름을 선택합니다. 소스 리포지토리 또는 워크플로가 정의된 브랜치 이름을 기준으로 필터링하거나, 워크플로 이름 또는 상태를 기준으로 필터링할 수 있습니다.

1. **편집**을 선택합니다.

1. **비주얼**을 선택합니다.

1. 워크플로 다이어그램에서 **소스** 및 **트리거** 상자를 선택합니다.

1. 구성 창에서 **트리거 추가**를 선택합니다.

1. **트리거 추가** 대화 상자에서 다음과 같이 필드에 정보를 입력합니다.

    **트리거 유형** 

   트리거 유형을 지정합니다. 다음 값 중 하나를 사용할 수 있습니다.
   + **푸시**(시각적 편집기) 또는 `PUSH`(YAML 편집기)

     푸시 트리거는 변경 사항이 소스 리포지토리로 푸시될 때 워크플로 실행을 시작합니다. 워크플로 실행은 푸시 *대상* 브랜치(즉, 대상 브랜치)의 파일을 사용합니다.
   + **풀 요청**(시각적 편집기) 또는 `PULLREQUEST`(YAML 편집기)

     풀 요청 트리거는 소스 리포지토리에서 풀 요청이 열리거나 업데이트되거나 닫힐 때 워크플로 실행을 시작합니다. 워크플로 실행은 *가져오려는* 브랜치(즉, 소스 브랜치)의 파일을 사용합니다.
   + **일정**(시각적 편집기) 또는 `SCHEDULE`(YAML 편집기)

     일정 트리거는 지정한 cron 표현식으로 정의된 일정에 따라 워크플로를 실행합니다. 브랜치 파일을 사용하여 소스 리포지토리의 각 브랜치에 대해 별도의 워크플로 실행이 시작됩니다. (트리거가 활성화되는 브랜치를 제한하려면 **브랜치** 필드(시각적 편집기) 또는 `Branches` 속성(YAML 편집기)을 사용합니다.)

     일정 트리거를 구성할 때는 다음 지침을 따르세요.
     + 워크플로당 하나의 일정 트리거만 사용합니다.
     + CodeCatalyst 스페이스에 여러 워크플로를 정의한 경우 동시에 시작하도록 10개 이하로 예약하는 것이 좋습니다.
     + 실행 사이에 충분한 시간을 두고 트리거의 cron 표현식을 구성해야 합니다. 자세한 내용은 [Expression](workflow-reference.md#workflow.triggers.expression) 섹션을 참조하세요.

   예시는 [예시: 워크플로의 트리거](workflows-add-trigger-examples.md) 섹션을 참조하세요.

    **풀 요청에 대한 이벤트** 

   이 필드는 **풀 요청** 트리거 유형을 선택한 경우에만 나타납니다.

   워크플로 실행을 시작할 풀 요청 이벤트의 유형을 지정합니다. 유효한 값은 다음과 같습니다.
   + **풀 요청이 생성됨**(시각적 편집기) 또는 `OPEN`(YAML 편집기)

     풀 요청이 생성되면 워크플로 실행이 시작됩니다.
   + **풀 요청이 닫힘**(시각적 편집기) 또는 `CLOSED`(YAML 편집기)

     풀 요청이 종료되면 워크플로 실행이 시작됩니다. `CLOSED` 이벤트의 동작은 까다롭고 예시를 통해 가장 잘 이해됩니다. 자세한 정보는 [예시: 풀, 브랜치 및 'CLOSED' 이벤트가 있는 트리거](workflows-add-trigger-examples.md#workflows-add-trigger-examples-push-pull-close)을 참조하세요.
   + **풀 요청에 대한 새 개정**(시각적 편집기) 또는 `REVISION`(YAML 편집기)

     워크플로 실행은 풀 요청에 대한 개정이 생성될 때 시작됩니다. 풀 요청이 생성되면 첫 번째 개정이 생성됩니다. 그런 다음 풀 요청에 지정된 소스 브랜치에 새 커밋을 푸시할 때마다 새 개정이 생성됩니다. 풀 요청 트리거에 `REVISION` 이벤트를 포함하는 경우 `REVISION`는 `OPEN`의 수퍼 세트이므로 `OPEN` 이벤트를 생략할 수 있습니다.

   동일한 풀 요청 트리거에서 여러 이벤트를 지정할 수 있습니다.

   예시는 [예시: 워크플로의 트리거](workflows-add-trigger-examples.md) 섹션을 참조하세요.

    **Schedule** 

   이 필드는 **일정** 트리거 유형을 선택한 경우에만 나타납니다.

   예약된 워크플로 실행 시기를 설명하는 cron 표현식을 지정합니다.

   CodeCatalyst의 Cron 표현식은 다음과 같은 6개 필드 구문을 사용합니다. 여기서 각 필드는 공백으로 구분됩니다.

   *minutes* *hours* *days-of-month* *month* *days-of-week* *year*

   **cron 표현식의 예**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/codecatalyst/latest/userguide/workflows-add-trigger-add.html)

   CodeCatalyst에서 cron 표현식을 지정할 때는 다음 지침을 따라야 합니다.
   + `SCHEDULE` 트리거당 단일 cron 표현식을 지정합니다.
   + YAML 편집기에서 cron 표현식을 큰따옴표(`"`)로 묶습니다.
   + 시간은 협정 세계시(UTC)로 지정합니다. 다른 시간대는 지원되지 않습니다.
   + 실행 간격은 최소 30분으로 구성합니다. 더 빠른 주기는 지원되지 않습니다.
   + *days-of-month* 또는 *days-of-week* 필드를 지정하되 둘 다 지정하지는 않습니다. 필드 중 하나에 값 또는 별표(`*`)를 지정하는 경우 다른 필드에는 물음표(`?`)를 사용해야 합니다. 별표는 '모두'를 의미하고 물음표는 '모두'를 의미합니다.

    cron 표현식의 더 많은 예시와 `?`, `*`, `L`과 같은 와일드카드에 대한 정보는 *Amazon EventBridge 사용 설명서*의 [cron 표현식 참조](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cron-expressions.html)를 참조하세요. EventBridge 및 CodeCatalyst의 Cron 표현식은 정확히 동일한 방식으로 작동합니다.

   일정 트리거의 예시는 [예시: 워크플로의 트리거](workflows-add-trigger-examples.md) 섹션을 참조하세요.

    **브랜치** 및 **브랜치 패턴** 

   (선택 사항)

   워크플로 실행을 시작할 시기를 알기 위해 트리거가 모니터링하는 소스 리포지토리의 브랜치를 지정합니다. 정규식 패턴을 사용하여 브랜치 이름을 정의할 수 있습니다. 예를 들어 `main.*`을 사용하여 `main`으로 시작하는 모든 브랜치를 일치시킵니다.

   지정할 브랜치는 트리거 유형에 따라 다릅니다.
   + 푸시 트리거의 경우 푸시 *대상* 브랜치, 즉 *대상* 브랜치를 지정합니다. 일치하는 브랜치의 파일을 사용하여 일치하는 브랜치당 하나의 워크플로 실행이 시작됩니다.

     예시: `main.*`, `mainline` 
   + 풀 요청의 경우 *푸시할* 브랜치, 즉 *대상* 브랜치를 지정합니다. 워크플로 정의 파일과 소스 브랜치(일치하는 브랜치 *아님*)의 **소스** 파일을 사용하여 일치하는 브랜치당 하나의 워크플로 실행이 시작됩니다.

     예시: `main.*`, `mainline`, `v1\-.*`(`v1-`로 시작하는 브랜치와 일치)
   + 일정 트리거의 경우 예약된 실행에서 사용할 파일이 포함된 브랜치를 지정합니다. 워크플로 정의 파일과 일치하는 브랜치의 소스 파일을 사용하여 일치하는 브랜치당 하나의 워크플로 실행이 시작됩니다.

     예시: `main.*`, `version\-1\.0` 
**참고**  
브랜치를 지정하지 *않으면* 트리거는 소스 리포지토리의 모든 브랜치를 모니터링하고 다음에서 워크플로 정의 파일 및 소스 파일을 사용하여 워크플로 실행을 시작합니다.  
푸시 *대상* 브랜치(푸시 트리거용). 자세한 내용은 [예시: 간단한 코드 푸시 트리거](workflows-add-trigger-examples.md#workflows-add-trigger-examples-push-simple) 섹션을 참조하세요.
풀 *원본* 브랜치(풀 요청 트리거용). 자세한 내용은 [예시: 간단한 풀 요청 트리거](workflows-add-trigger-examples.md#workflows-add-trigger-examples-pull-simple) 섹션을 참조하세요.
모든 브랜치(일정 트리거용). 소스 리포지토리의 브랜치당 워크플로 실행이 한 번 시작됩니다. 자세한 내용은 [예시: 간단한 일정 트리거](workflows-add-trigger-examples.md#workflows-add-trigger-examples-schedule-simple) 섹션을 참조하세요.

   브랜치 및 트리거에 대한 자세한 내용은 [트리거 및 브랜치 사용 지침](workflows-add-trigger-considerations.md) 섹션을 참조하세요.

   더 많은 예시는 [예시: 워크플로의 트리거](workflows-add-trigger-examples.md)를 참조합니다.

    **파일 변경됨** 

   이 필드는 **푸시** 또는 **풀 요청** 트리거 유형을 선택한 경우에만 나타납니다.

   워크플로 실행을 시작해야 하는 시기를 알 수 있도록 트리거가 모니터링하는 소스 리포지토리의 파일 또는 폴더를 지정합니다. 정규식을 사용하여 파일 이름 또는 경로와 일치시킬 수 있습니다.

   예시는 [예시: 워크플로의 트리거](workflows-add-trigger-examples.md) 섹션을 참조하세요.

1. (선택 사항) 커밋하기 전에 워크플로의 YAML 코드를 검증하려면 **검증**을 선택합니다.

1. **커밋**을 선택하고 커밋 메시지를 입력한 다음 **커밋**을 다시 선택합니다.

------
#### [ YAML ]

**트리거 추가(YAML 편집기)**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/)에서 CodeCatalyst 콘솔을 엽니다.

1. 프로젝트를 선택합니다.

1. 탐색 창에서 **CI/CD**를 선택한 다음 **워크플로**를 선택합니다.

1. 워크플로의 이름을 선택합니다. 소스 리포지토리 또는 워크플로가 정의된 브랜치 이름을 기준으로 필터링하거나, 워크플로 이름 또는 상태를 기준으로 필터링할 수 있습니다.

1. **편집**을 선택합니다.

1. **YAML**을 선택합니다.

1. 다음 예시를 안내서로 사용하여 `Triggers` 섹션 및 기본 속성을 추가합니다. 자세한 내용은 [워크플로 YAML 정의](workflow-reference.md)의 [Triggers](workflow-reference.md#triggers-reference)를 참조하세요.

   코드 푸시 트리거는 다음과 같을 수 있습니다.

   ```
   Triggers:
     - Type: PUSH
       Branches:
         - main
   ```

   풀 요청 트리거는 다음과 같을 수 있습니다.

   ```
   Triggers:
     - Type: PULLREQUEST
       Branches:
         - main.*
       Events: 
         - OPEN
         - REVISION
         - CLOSED
   ```

   일정 트리거는 다음과 같을 수 있습니다.

   ```
   Triggers:
     - Type: SCHEDULE
       Branches:
         - main.*
       # Run the workflow at 1:15 am (UTC+0) every Friday until the end of 2023
       Expression: "15 1 ? * FRI 2022-2023"
   ```

   `Expression` 속성에서 사용할 수 있는 cron 표현식의 자세한 예시는 [Expression](workflow-reference.md#workflow.triggers.expression) 섹션을 참조하세요.

   푸시, 풀 요청 및 일정 트리거의 자세한 예시는 [예시: 워크플로의 트리거](workflows-add-trigger-examples.md) 섹션을 참조하세요.

1. (선택 사항) 커밋하기 전에 워크플로의 YAML 코드를 검증하려면 **검증**을 선택합니다.

1. **커밋**을 선택하고 커밋 메시지를 입력한 다음 **커밋**을 다시 선택합니다.

------