

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

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

# 트리거를 사용하여 워크플로 실행 자동 시작
<a name="workflows-add-trigger"></a>

워크플로 트리거를 사용하여 Amazon CodeCatalyst 워크플로가 자동으로 실행되도록 시작할 수 있습니다.

*워크플로 트리거* 또는 간단히 *트리거*를 사용하면 코드 푸시와 같은 특정 이벤트가 발생하면 워크플로 실행을 자동으로 시작할 수 있습니다. 트리거를 구성하여 소프트웨어 개발자가 CodeCatalyst 콘솔을 통해 워크플로 실행을 수동으로 시작하지 않아도 되도록 할 수 있습니다.

세 가지 유형의 트리거를 사용할 수 있습니다.
+ **푸시** - 코드 푸시 트리거는 커밋이 푸시될 때마다 워크플로 실행을 시작하도록 합니다.
+ **풀 요청** - 풀 요청 트리거는 풀 요청이 생성, 수정 또는 종료될 때마다 워크플로 실행을 시작하게 합니다.
+ **일정** - 일정 트리거는 정의한 일정에 따라 워크플로 실행이 시작되도록 합니다. 소프트웨어 개발자가 다음 날 아침에 작업할 수 있도록 최신 빌드를 준비할 수 있도록 일정 트리거를 사용하여 소프트웨어의 야간 빌드를 실행하는 것을 고려하세요.

푸시, 풀 요청 및 예약 트리거를 단독으로 사용하거나 동일한 워크플로에서 조합하여 사용할 수 있습니다.

트리거는 선택 사항입니다. 구성하지 않으면 워크플로를 수동으로만 시작할 수 있습니다.

**작은 정보**  
트리거가 실제로 작동하는지 확인하려면 블루프린트가 있는 프로젝트를 시작합니다. 대부분의 블루프린트에는 트리거가 있는 워크플로가 포함되어 있습니다. 블루프린트의 워크플로 정의 파일에서 `Trigger` 속성을 찾습니다. 청사진에 대한 자세한 내용은 [블루프린트를 사용하여 프로젝트 생성](projects-create.md#projects-create-console-template)을 참조하세요.

**Topics**
+ [예시: 워크플로의 트리거](workflows-add-trigger-examples.md)
+ [트리거 및 브랜치 사용 지침](workflows-add-trigger-considerations.md)
+ [워크플로에 트리거 추가](workflows-add-trigger-add.md)

# 예시: 워크플로의 트리거
<a name="workflows-add-trigger-examples"></a>

다음 예시에서는 Amazon CodeCatalyst 워크플로 정의 파일에 다양한 유형의 트리거를 추가하는 방법을 보여줍니다.

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

**Topics**
+ [예시: 간단한 코드 푸시 트리거](#workflows-add-trigger-examples-push-simple)
+ [예시: 간단한 '메인으로 푸시' 트리거](#workflows-add-trigger-examples-push-main)
+ [예시: 간단한 풀 요청 트리거](#workflows-add-trigger-examples-pull-simple)
+ [예시: 간단한 일정 트리거](#workflows-add-trigger-examples-schedule-simple)
+ [예시: 일정 및 브랜치가 있는 트리거](#workflows-add-trigger-examples-schedule-branches)
+ [예시: 일정, 푸시 및 브랜치가 있는 트리거](#workflows-add-trigger-examples-schedule-push-branches)
+ [예시: 풀 및 브랜치가 있는 트리거](#workflows-add-trigger-examples-pull-branches)
+ [예시: 풀, 브랜치 및 'CLOSED' 이벤트가 있는 트리거](#workflows-add-trigger-examples-push-pull-close)
+ [예시: 푸시, 브랜치 및 파일이 있는 트리거](#workflows-add-trigger-examples-push-multi)
+ [예시: 수동 트리거](#workflows-add-trigger-examples-manual)
+ [예시: CI/CD 다중 워크플로 설정의 트리거](#workflows-add-trigger-usecases)

## 예시: 간단한 코드 푸시 트리거
<a name="workflows-add-trigger-examples-push-simple"></a>

다음 예시는 소스 리포지토리의 *모든* 브랜치로 코드가 푸시될 때마다 워크플로 실행을 시작하는 트리거를 보여줍니다.

이 트리거가 활성화되면 CodeCatalyst는 푸시*하려는* 브랜치(즉, 대상 브랜치)의 파일을 사용하여 워크플로 실행을 시작합니다.

예를 들어 커밋을 `main`에 푸시하면 CodeCatalyst는 `main`의 워크플로 정의 파일 및 기타 소스 파일을 사용하여 워크플로 실행을 시작합니다.

또 다른 예를 들면 커밋을 `feature-branch-123`에 푸시하면 CodeCatalyst는 `feature-branch-123`의 워크파우 정의 파일 및 기타 소스 파일을 사용하여 워크플로 실행을 시작합니다.

```
Triggers:
  - Type: PUSH
```

**참고**  
`main`으로 푸시할 때만 워크플로 실행을 시작하려면 [예시: 간단한 '메인으로 푸시' 트리거](#workflows-add-trigger-examples-push-main) 섹션을 참조하세요.

## 예시: 간단한 '메인으로 푸시' 트리거
<a name="workflows-add-trigger-examples-push-main"></a>

다음 예시는 소스 리포지토리에서 코드가 `main` 브랜치(및 `main` 브랜치*만*)에 푸시될 때마다 워크플로 실행을 시작하는 트리거를 보여줍니다.

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

## 예시: 간단한 풀 요청 트리거
<a name="workflows-add-trigger-examples-pull-simple"></a>

다음 예시는 소스 리포지토리에서 풀 요청이 생성되거나 수정될 때마다 워크플로 실행을 시작하는 트리거를 보여줍니다.

이 트리거가 활성화되면 CodeCatalyst는 워크플로 정의 파일과 *가져오려는* 브랜치(즉, 소스 브랜치)의 다른 소스 파일을 사용하여 워크플로 실행을 시작합니다.

예를 들어, `feature-123` 소스 브랜치와 `main` 대상 브랜치가 있는 풀 요청을 만들면 CodeCatalyst는 `feature-123`에서 워크플로 정의 파일 및 기타 소스 파일을 사용하여 워크플로 실행을 시작합니다.

```
Triggers:
  - Type: PULLREQUEST
    Events:
      - OPEN
      - REVISION
```

## 예시: 간단한 일정 트리거
<a name="workflows-add-trigger-examples-schedule-simple"></a>

다음 예시는 매주 월요일부터 금요일까지 자정(UTC\$10)에 워크플로 실행을 시작하는 트리거를 보여줍니다.

이 트리거가 활성화되면 CodeCatalyst는 이 트리거가 포함된 워크플로 정의 파일이 포함된 소스 리포지토리의 각 브랜치에 대해 단일 워크플로 실행을 시작합니다.

예를 들어 소스 리포지토리에 `main`, `release-v1`, `feature-123`라는 세 개의 브랜치가 있고 각 브랜치에 트리거가 다음과 같은 워크플로 정의 파일이 포함된 경우 CodeCatalyst는 세 개의 워크플로 실행을 시작합니다. 하나는 `main`의 파일을 사용하고, 다른 하나는 `release-v1`의 파일을 사용하며, 다른 하나는 `feature-123`의 파일을 사용합니다.

```
Triggers:
  - Type: SCHEDULE
    Expression: "0 0 ? * MON-FRI *"
```

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

## 예시: 일정 및 브랜치가 있는 트리거
<a name="workflows-add-trigger-examples-schedule-branches"></a>

다음 예시는 매일 오후 6시 15분(UTC\$10)에 워크플로 실행을 시작하는 트리거를 보여줍니다.

이 트리거가 활성화되면 CodeCatalyst는 `main` 브랜치의 파일을 사용하여 워크플로 실행을 시작하고 `release-`로 시작하는 각 브랜치에 대해 추가 실행을 시작합니다.

예를 들어 소스 리포지토리에 `main`, `release-v1`, `bugfix-1`, `bugfix-2`라는 브랜치가 있는 경우 CodeCatalyst는 두 개의 워크플로 실행을 시작합니다. 하나는 `main`의 파일을 사용하고 다른 하나는 `release-v1`의 파일을 사용합니다. `bugfix-1` 및 `bugfix-1` 브랜치에 대한 워크플로 실행을 시작*하지* 않습니다.

```
Triggers:
  - Type: SCHEDULE
    Expression: "15 18 * * ? *"
    Branches:
      - main
      - release\-.*
```

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

## 예시: 일정, 푸시 및 브랜치가 있는 트리거
<a name="workflows-add-trigger-examples-schedule-push-branches"></a>

다음 예시에서는 매일 자정(UTC\$10)에 워크플로 실행을 시작하는 트리거와 코드가 `main` 브랜치로 푸시될 때마다 트리거를 보여줍니다.

이 예시에서는 다음이 적용됩니다.
+ 워크플로 실행은 매일 자정에 시작됩니다. 워크플로 실행은 `main` 브랜치의 워크플로 정의 파일 및 기타 소스 파일을 사용합니다.
+ 워크플로 실행은 또한 `main` 브랜치에 커밋을 푸시할 때마다 시작됩니다. 워크플로 실행은 대상 브랜치(`main`)의 워크플로 정의 파일 및 기타 소스 파일을 사용합니다.

```
Triggers:
  - Type: SCHEDULE
    Expression: "0 0 * * ? *"
    Branches:
      - main
  - Type: PUSH
    Branches: 
      - main
```

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

## 예시: 풀 및 브랜치가 있는 트리거
<a name="workflows-add-trigger-examples-pull-branches"></a>

다음 예시는 누군가 `main` 대상 브랜치로 풀 요청을 열거나 수정할 때마다 워크플로 실행을 시작하는 트리거를 보여줍니다. `Triggers` 구성에 지정된 브랜치는 `main`이지만 워크플로 실행은 소스 브랜치(*가져오는*브랜치)의 워크플로 정의 파일 및 기타 *소스* 파일을 사용합니다.

```
Triggers:      
  - Type: PULLREQUEST
    Branches:
      - main
    Events:
      - OPEN
      - REVISION
```

## 예시: 풀, 브랜치 및 'CLOSED' 이벤트가 있는 트리거
<a name="workflows-add-trigger-examples-push-pull-close"></a>

다음 예시는 `main`로 시작하는 브랜치에서 풀 요청이 종료될 때마다 워크플로 실행을 시작하는 트리거를 보여줍니다.

이 예시에서는 다음이 적용됩니다.
+ `main`으로 시작하는 대상 브랜치로 풀 요청을 닫으면 워크플로 정의 파일과 (현재 닫힌) 소스 브랜치의 기타 소스 파일을 사용하여 워크플로 실행이 자동으로 시작됩니다.
+ 풀 요청이 병합된 후 소스 리포지토리가 브랜치를 자동으로 삭제하도록 구성한 경우 이러한 브랜치는 `CLOSED` 상태로 들어갈 기회가 없습니다. 즉, 병합된 브랜치는 풀 요청 `CLOSED` 트리거를 활성화하지 않습니다. 이 시나리오에서 `CLOSED` 트리거를 활성화하는 유일한 방법은 병합하지 않고 풀 요청을 닫는 것입니다.

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

## 예시: 푸시, 브랜치 및 파일이 있는 트리거
<a name="workflows-add-trigger-examples-push-multi"></a>

다음 예시는 `main` 브랜치의 `filename.txt` 파일 또는 `src` 디렉터리에 있는 파일을 변경할 때마다 워크플로 실행을 시작하는 트리거를 보여줍니다.

이 트리거가 활성화되면 CodeCatalyst는 `main` 브랜치의 워크플로 정의 파일 및 기타 소스 파일을 사용하여 워크플로 실행을 시작합니다.

```
Triggers:
  - Type: PUSH
    Branches:
      - main
    FilesChanged:
      - filename.txt
      - src\/.*
```

## 예시: 수동 트리거
<a name="workflows-add-trigger-examples-manual"></a>

수동 트리거를 구성하려면 워크플로 정의 파일에서 `Triggers` 섹션을 생략합니다. 이 섹션이 없으면 사용자는 CodeCatalyst 콘솔에서 **실행** 버튼을 선택하여 워크플로를 수동으로 시작해야 합니다. 자세한 내용은 [워크플로 수동 실행 시작](workflows-manually-start.md) 섹션을 참조하세요.

## 예시: CI/CD 다중 워크플로 설정의 트리거
<a name="workflows-add-trigger-usecases"></a>

이 예시에서는 지속적 통합(CI) 및 지속적 전송(CD)을 위해 별도의 Amazon CodeCatalyst 워크플로를 사용하려는 경우 트리거를 설정하는 방법을 설명합니다.

이 시나리오에서는 두 가지 워크플로를 설정합니다.
+ **CI 워크플로** - 이 워크플로는 풀 요청이 생성되거나 수정될 때 애플리케이션을 빌드하고 테스트합니다.
+ **CD 워크플로** - 이 워크플로는 풀 요청이 병합될 때 애플리케이션을 빌드하고 배포합니다.

**CI 워크플로**의 정의 파일은 다음과 비슷합니다.

```
Triggers:      
  - Type: PULLREQUEST
    Branches:
      - main
    Events:
      - OPEN
      - REVISION
Actions:
  BuildAction:
    instructions-for-building-the-app
  TestAction:
    instructions-for-test-the-app
```

`Triggers` 코드는 소프트웨어 개발자가 특성 브랜치를 `main`브랜치에 병합하도록 요청하는 풀 요청을 생성할 때마다(또는 [수정](pull-requests-update.md)할 때마다) 워크플로 실행을 자동으로 시작하도록 나타냅니다. CodeCatalyst는 소스 브랜치(기능 브랜치)의 소스 코드를 사용하여 워크플로 실행을 시작합니다.

**CD 워크플로**의 정의 파일은 다음과 비슷합니다.

```
Triggers:      
  - Type: PUSH
    Branches:
      - main
Actions:
  BuildAction:
    instructions-for-building-the-app
  DeployAction:
    instructions-for-deploying-the-app
```

`Triggers` 코드는 `main`에 병합이 발생할 때 워크플로를 자동으로 시작하도록 나타냅니다. CodeCatalyst는 `main` 브랜치의 소스 코드를 사용하여 워크플로 실행을 시작합니다.

# 트리거 및 브랜치 사용 지침
<a name="workflows-add-trigger-considerations"></a>

이 섹션에서는 브랜치를 포함하는 Amazon CodeCatalyst 트리거를 설정할 때의 몇 가지 주요 지침에 대해 설명합니다.

트리거에 대한 자세한 내용은 [트리거를 사용하여 워크플로 실행 자동 시작](workflows-add-trigger.md) 주제를 참조하세요.
+ **지침 1:** 푸시 및 풀 요청 트리거 모두에서 브랜치를 지정하려면 트리거 구성에서 대상(또는 '대상') 브랜치를 지정해야 합니다. 소스(또는 'from') 브랜치를 지정하지 마세요.

  다음 예시에서는 브랜치에서 `main`을 눌러 워크플로를 활성화합니다.

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

  다음 예시에서는 `main`으로 브랜치에서 요청을 가져오면 워크플로가 활성화됩니다.

  ```
  Triggers:
    - Type: PULLREQUEST
      Branches:
        - main
      Events:
        - OPEN
        - REVISION
  ```
+ **지침 2:** 푸시 트리거의 경우 워크플로가 활성화되면 *destination* 브랜치에 있는 워크플로 정의 파일과 소스 파일을 사용하여 워크플로가 실행됩니다.
+ **지침 3:** 풀 요청 트리거의 경우 워크플로가 활성화되면 트리거 구성에서 대상 브랜치를 지정했더라도 *source* 브랜치에 있는 워크플로 정의 파일과 소스 파일을 사용하여 워크플로가 실행됩니다.
+ **지침 4:** 한 브랜치에서 정확히 동일한 트리거가 다른 브랜치에서는 실행되지 않을 수 있습니다.

  다음 푸시 트리거를 고려합니다.

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

  이 트리거가 포함된 워크플로 정의 파일이 `main`에 존재하고 `test`에 복제된 경우 워크플로는 `test`의 파일을 사용하여 자동으로 시작되지 않습니다(`test`의 파일을 사용하도록 워크플로를 *수동*으로 시작할 수는 있지만). **지침 2**를 검토하여 `test`의 파일을 사용하여 워크플로가 자동으로 실행되지 않는 이유를 알아봅니다.

  다음과 같은 풀 요청 트리거도 고려해 보세요.

  ```
  Triggers:
    - Type: PULLREQUEST
      Branches:
        - main
      Events:
        - OPEN
        - REVISION
  ```

  이 트리거가 포함된 워크플로 정의 파일이 `main`에 있는 경우 워크플로는 `main`의 파일을 사용하여 실행되지 않습니다. (단, `main`의 `test` 브랜치를 생성하면 워크플로는 `test`의 파일을 사용하여 실행됩니다.) **지침 3**을 검토하여 이유를 이해합니다.

# 워크플로에 트리거 추가
<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. **커밋**을 선택하고 커밋 메시지를 입력한 다음 **커밋**을 다시 선택합니다.

------