스케줄 액션과 실행 범위
스케줄의 action은 트리거가 발생했을 때 실행할 빌드를 지정합니다. 입력 요청의 선택 필드와 저장된 스케줄이 반환하는 필수 필드를 구분합니다.
입력과 저장된 액션
| 필드 | 생성 또는 교체 입력 | 저장된 액션 응답 |
|---|---|---|
target | 필수 | 필수 |
branchName | 선택 | 필수 |
fallbackBranches | 선택 | 선택 |
forceBuild | 선택 | 필수 |
retryCount | 선택 | 선택 |
retryBackoffDuration | 선택 | 선택 |
abortOnFailure | 선택 | 필수 |
notificationsEnabled | 선택 | 필수 |
fallbackBranches는 대상 브랜치에서 JobSpec을 찾지 못했을 때 명세를 조회할 브랜치 목록입니다. forceBuild는 최신 상태 판단을 무시할지 제어합니다. 재시도는 실패한 실행 작업에 적용하며, 재시도 횟수를 모두 사용하거나 재시도할 수 없는 오류가 발생하면 실패를 최종 확정합니다. 모든 종류의 실패를 재시도할 수 있는 것은 아닙니다.
종료 알림은 스케줄을 가장 최근에 수정한 사용자에게 보냅니다. 프로젝트 범위인 ProjectScope에서는 notificationsEnabled와 관계없이 알림을 보내지 않습니다. 이 범위를 JSON으로 지정하는 값은 scopeMode.type: "project"입니다.
생성과 교체의 action
| 이름 | 자료형 | 필수 여부 | 의미와 조건 | 예시 값 |
|---|---|---|---|---|
abortOnFailure | boolean | 선택 | 활성화하면 실행 작업 하나가 성공하지 못한 결과로 끝날 때 나머지 작업을 취소하여 빌드를 즉시 종료합니다. | false |
forceBuild | boolean | 선택 | 빌드를 실행할 때 데이터의 최신 여부 판단을 무시할지 지정합니다. | false |
retryBackoffDuration | object | 선택 | 실행 작업 실패 후 다음 재시도까지 기다릴 기간입니다. | 본문 예시 참조 |
retryCount | integer | 선택 | 빌드 안에서 실패한 실행 작업을 재시도할 횟수입니다. 모든 재시도를 사용했거나 재시도할 수 없는 오류가 발생하기 전까지 실패를 최종 확정하지 않습니다. 모든 종류의 실패를 재시도할 수 있는 것은 아닙니다. | 1 |
fallbackBranches | list<BranchName> | 선택 | 대상 브랜치에서 JobSpec을 찾지 못했을 때 실행 작업 명세를 조회할 다른 브랜치 목록입니다. | 본문 예시 참조 |
branchName | string | 선택 | 스케줄이 실행될 대상 브랜치입니다. | master |
notificationsEnabled | boolean | 선택 | 빌드 종료 알림의 사용 여부입니다. 스케줄에 연결된 알림은 스케줄을 가장 최근에 수정한 사용자에게 보내며 scopeMode가 ProjectScope이면 보내지 않습니다. | false |
target | union<upstream, manual, connecting> | 필수 | 빌드 대상의 범위입니다. | 본문 예시 참조 |
retryBackoffDuration의 구조
| 이름 | 자료형 | 필수 여부 | 의미와 조건 | 예시 값 |
|---|---|---|---|---|
value | integer | 필수 | 기간의 수치입니다. | 30 |
unit | enum | 필수 | 기간의 단위입니다. 허용값: MILLISECONDS, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS. | SECONDS |
fallbackBranches의 구조
배열 항목은 BranchName이며 자료형은 string입니다.
브랜치 이름입니다.
target의 구조
세 가지 분기와 각 목록의 조건은 빌드 대상 범위를 따릅니다.
실행 범위
사용자 범위는 type: "user"입니다. 연결된 사용자가 접근할 수 있는 리소스로 출력 대상을 찾으므로 그 사용자의 권한이 바뀌면 빌드 대상이 달라지거나 빌드가 실패할 수 있습니다. 장기 운영에서는 프로젝트 범위를 검토합니다.
프로젝트 범위는 type: "project"와 프로젝트 RID 목록을 사용합니다. 지정한 프로젝트의 리소스만 빌드하며 개인 사용자의 권한을 기준으로 삼는 방식과 구분합니다. 범위 선택의 운영 조건은 스케줄 권한 범위를 따릅니다.
스케줄이 빌드할 수 있는 범위입니다.
분기 project
| 이름 | 자료형 | 필수 여부 | 의미와 조건 | 예시 값 |
|---|---|---|---|---|
type | enum | 필수 | 허용값: project. | project |
projectRids | list<ProjectRid> | 선택 |
projectRids의 구조
배열 항목은 ProjectRid이며 자료형은 string입니다.
프로젝트의 고유 식별자(RID)입니다.
분기 user
| 이름 | 자료형 | 필수 여부 | 의미와 조건 | 예시 값 |
|---|---|---|---|---|
type | enum | 필수 | 허용값: user. | user |