CollabOps

트리거

Workflow 실행 조건 — push, change_request, schedule, workflow_dispatch

triggers는 Workflow가 언제 실행될지를 정의합니다.

Supported Events

EventDescription
push브랜치에 코드가 push될 때
change_requestChange Request가 생성/업데이트될 때
schedule크론 스케줄에 따라 주기적으로 실행
workflow_dispatch수동으로 실행할 때

push

브랜치에 코드가 push될 때 Workflow를 실행합니다.

triggers:
  push:
    # main 또는 develop 브랜치, feature/ 로 시작하는 모든 브랜치
    branches: [main, develop, "feature/*"]

    # v로 시작하는 태그가 push될 때 (예: v1.0.0, v2.1.3)
    tags: ["v*"]

    # src/ 또는 tests/ 하위 파일이 변경된 경우에만 실행
    paths: [src/**, tests/**]

push 필드

FieldTypeDescription
brancheslist[string]대상 브랜치 패턴 목록. 글로브 패턴(*, **) 지원
branches-ignorelist[string]제외할 브랜치 패턴 목록. branches와 동시 사용 불가
tagslist[string]대상 태그 패턴 목록. 글로브 패턴 지원
tags-ignorelist[string]제외할 태그 패턴 목록. tags와 동시 사용 불가
pathslist[string]변경된 파일 경로 패턴. ** 재귀 패턴, ! 부정 패턴 지원
paths-ignorelist[string]무시할 파일 경로 패턴. paths와 동시 사용 불가

브랜치 패턴 예시

triggers:
  push:
    branches:
      - main                    # 정확히 main 브랜치
      - "feature/*"             # feature/login, feature/signup 등
      - "release/**"            # release/v1, release/v1/hotfix 등 (재귀)

경로 필터 예시

# src/ 하위 파일이 변경될 때만 실행
triggers:
  push:
    branches: [main]
    paths:
      - src/**
      - package.json

# docs/ 변경은 무시 (나머지 파일 변경 시 실행)
triggers:
  push:
    branches: [main]
    paths-ignore:
      - docs/**
      - "*.md"

브랜치/태그 제외 예시

# temp/, wip/ 로 시작하는 브랜치는 제외
triggers:
  push:
    branches-ignore:
      - "temp/*"
      - "wip/*"

# v-beta로 시작하는 태그는 제외, 그 외 모든 태그에서 실행
triggers:
  push:
    tags-ignore:
      - "v-beta*"

다음 필드 쌍은 동시에 사용할 수 없습니다:

  • branchesbranches-ignore
  • tagstags-ignore
  • pathspaths-ignore

change_request

Change Request가 생성되거나 업데이트될 때 Workflow를 실행합니다.

triggers:
  change_request:
    # main 브랜치를 대상으로 하는 CR만 실행
    branches: [main]

    # docs/ 변경은 무시
    paths-ignore: [docs/**]

change_request 필드

FieldTypeDescription
brancheslist[string]대상(base) 브랜치 패턴 목록
branches-ignorelist[string]제외할 브랜치 패턴 목록. branches와 동시 사용 불가
pathslist[string]변경된 파일 경로 패턴
paths-ignorelist[string]무시할 파일 경로 패턴. paths와 동시 사용 불가

tagstags-ignorechange_request에서 지원하지 않습니다. 태그 기반 트리거는 push를 사용하세요.

schedule

크론 스케줄에 따라 Workflow를 주기적으로 실행합니다.

triggers:
  schedule:
    # 실행 대상 브랜치 (필수)
    branch: main

    # 크론 표현식 (UTC 기준)
    cron:
      - "0 0 * * *"     # 매일 자정 (UTC) = 한국시간 오전 9시
      - "0 12 * * 1-5"  # 평일 정오 (UTC) = 한국시간 오후 9시

schedule 필드

FieldRequiredTypeDescription
branchYESstring실행 대상 브랜치. 단일 브랜치만 지정 가능
cronYESlist[string]크론 표현식 목록 (최소 1개, UTC 기준)

크론 표현식 참고

┌───────────── 분 (0-59)
│ ┌───────────── 시 (0-23)
│ │ ┌───────────── 일 (1-31)
│ │ │ ┌───────────── 월 (1-12)
│ │ │ │ ┌───────────── 요일 (0-6, 일=0)
│ │ │ │ │
* * * * *
표현식설명
0 0 * * *매일 자정 (UTC)
0 */6 * * *6시간마다
30 9 * * 1-5평일 오전 9:30 (UTC)
0 0 1 * *매월 1일 자정

workflow_dispatch

수동으로 Workflow를 실행합니다. UI 또는 API에서 트리거할 수 있습니다.

triggers:
  # 수동 실행 — 키만 선언
  workflow_dispatch:

브랜치 필터를 적용할 수도 있습니다:

triggers:
  # 수동 실행 시 브랜치 필터
  workflow_dispatch:
    branches: [main, develop]

workflow_dispatch 필드

FieldTypeDescription
brancheslist[string]수동 실행을 허용할 브랜치 패턴 목록. 글로브 패턴 지원

workflow_dispatch는 경로 필터(paths, paths-ignore)를 지원하지 않습니다.

여러 트리거 조합

하나의 Workflow에 여러 트리거를 동시에 설정할 수 있습니다. 어느 하나라도 충족되면 실행됩니다.

triggers:
  # 1. main/develop push 시 실행
  push:
    branches: [main, develop]
    paths: [src/**, package.json]

  # 2. main 대상 CR 시 실행
  change_request:
    branches: [main]

  # 3. 매일 자정 스케줄 실행
  schedule:
    branch: main
    cron: ["0 0 * * *"]

  # 4. 수동 실행 가능
  workflow_dispatch:

Rules

다음 필드 쌍은 동시에 사용할 수 없습니다:

branches / branches-ignore

tags / tags-ignore

paths / paths-ignore

schedule.cron은 최소 1개 이상 필요합니다.

schedule.branch는 필수이며, 단일 브랜치만 지정 가능합니다.

workflow_dispatch는 경로 필터를 지원하지 않습니다.

change_requesttags / tags-ignore를 지원하지 않습니다.

triggers에는 최소 1개의 이벤트가 포함되어야 합니다.

목차