Type object
File match **/.kode/*.yaml
Schema URL https://catalog.lintel.tools/schemas/schemastore/kode-ci-build-yaml/latest.json
Source https://www.schemastore.org/kode-ci-build-1.0.0.json

Validate with Lintel

npx @lintel/lintel check
Type: object

KoDE/CI 빌드 스펙에 사용되는 yaml의 스키마를 정의

Properties

jobs job[] required

실행할 작업들: 독립적으로 병렬 실행됨

on object

빌드 실행 조건

4 nested properties
push object

Push 이벤트에 의한 조건

4 nested properties
branches string[]

Push 빌드의 branch 조건

Default:
[
  "*"
]
minItems=1
tags string[]

Push 빌드의 tag 조건

Default:
[
  "*"
]
minItems=1
commit object
1 nested properties
message-contain string

commit message에 주어진 문자열을 포함한 경우만 빌드

paths string[]

Push 빌드의 paths 조건

Default:
[
  ""
]
minItems=1
pull-request object

PullRequest 이벤트에 의한 조건

3 nested properties
branches string[]

PR빌드의 target 브랜치 조건

Default:
[
  ""
]
minItems=1
types string[]

PR 이벤트 타입

Default:
[
  "opened",
  "synchronize",
  "reopened"
]
minItems=1
paths string[]

PullRequest 빌드의 paths 조건

Default:
[
  ""
]
minItems=1
manual object

수동빌드 대상을 위한 조건

2 nested properties
branches string[]

수동빌드의 대상이 되는 브랜치 조건

Default:
[
  ""
]
minItems=1
tags string[]

수동빌드의 대상이 되는 태그 조건

Default:
[
  ""
]
minItems=1
schedule object

스케줄에 의한 조건

4 nested properties
cron string required

cron 표현식. unix 표현식과 quartz 표현식 사용가능

branches string[] required

스케줄 빌드의 branch 조건

minItems=1
zone string

스케줄 빌드 zone

Default:
[
  "Asia/Seoul"
]
build-if-changed boolean

변경된 파일이 있을때만 빌드

Default: true
environment env[]

환경변수

Definitions

env object
name string required

환경변수 이름

pattern=[a-zA-Z_][a-zA-Z_0-9]*
value string required

환경변수 값

branch string

환경변수를 적용할 브랜치

build-condition object

빌드 실행 조건

push object

Push 이벤트에 의한 조건

4 nested properties
branches string[]

Push 빌드의 branch 조건

Default:
[
  "*"
]
minItems=1
tags string[]

Push 빌드의 tag 조건

Default:
[
  "*"
]
minItems=1
commit object
1 nested properties
message-contain string

commit message에 주어진 문자열을 포함한 경우만 빌드

paths string[]

Push 빌드의 paths 조건

Default:
[
  ""
]
minItems=1
pull-request object

PullRequest 이벤트에 의한 조건

3 nested properties
branches string[]

PR빌드의 target 브랜치 조건

Default:
[
  ""
]
minItems=1
types string[]

PR 이벤트 타입

Default:
[
  "opened",
  "synchronize",
  "reopened"
]
minItems=1
paths string[]

PullRequest 빌드의 paths 조건

Default:
[
  ""
]
minItems=1
manual object

수동빌드 대상을 위한 조건

2 nested properties
branches string[]

수동빌드의 대상이 되는 브랜치 조건

Default:
[
  ""
]
minItems=1
tags string[]

수동빌드의 대상이 되는 태그 조건

Default:
[
  ""
]
minItems=1
schedule object

스케줄에 의한 조건

4 nested properties
cron string required

cron 표현식. unix 표현식과 quartz 표현식 사용가능

branches string[] required

스케줄 빌드의 branch 조건

minItems=1
zone string

스케줄 빌드 zone

Default:
[
  "Asia/Seoul"
]
build-if-changed boolean

변경된 파일이 있을때만 빌드

Default: true
job object
name string required

작업 이름

pattern=[a-zA-Z0-9_-]{1,40}
execute string[] required

실행할 명령 목록(순차실행)

minItems=1
needs object[]

선행 작업 및 조건 정의

Default:
[]
set-proxy string[]

사내 Proxy 설정

Default:
[
  "shell"
]
no-proxy-hosts string[]

proxy 예외할 host 목록 (ip, ip/mask, domain)

Default:
[]
run-on object

실행환경 설정

5 nested properties
image string

docker image

Default: "+@basebox"
pattern=^(\+@[a-z0-9-]+|\+\/[a-z0-9/-]+|[a-z0-9/._-]+)(:[a-z0-9A-Z._-]+)?$
resources string | object

실행에 사용할 리소스 크기 설정

use string[]

실행환경에서 사용할 기능 설정

Default:
[]
platform string

실행환경 플랫폼

Default: "k8s"
Values: "k8s" "macos"
selectors object[]

platform: macos 일때 사용할 agent를 선택

Default:
[]
artifacts string[]

artifact로 지정할 파일 혹은 디렉토리 경로

Default:
[]
caches object[]

다음 빌드의 속도 향상을 위한 캐시 설정

Default:
[]
git-clone string

git clone시 depth를 주기위한 옵션

Default: "shallow"
pattern=^(shallow|deep|shallow:[0-9]+)$
max-execution-time string

최대 실행시간 (e.g. '1h', '100m')

Default: "1h"
pattern=^([0-9]+)(h|m)$
post-process object

빌드 후처리기 설정

2 nested properties
app-center-releases object[]

artifact로 지정된 .apk/.ipa 파일을 appcenter로 릴리즈

git-ops object

GitOps 방식의 K8S Deploy를 위한 manifest repo 업데이트

4 nested properties
manifest object required

K8S manifest repo 정보

update string[] required

manifest repo를 업데이트하기 위한 명령

minItems=1
with-artifacts string[]

빌드 작업에서 manifest reop로 전달할 artifacts

sync-git-tag boolean

manifest repo에 git tag를 동기화할지 여부. push tag 빌드일때만 동작

Default: false
html-reports object[]

html report 설정. path 경로의 html 파일을 업로드

Default:
[]
export object

다음 job으로 전달할 파일 및 환경변수를 지정합니다. 해당 job 의 성공/실패 상관없이 export 됩니다.

2 nested properties
artifacts string[]

다음 job으로 전달할 파일 이름 목록

Default:
[]
environment string[]

다음 job으로 전달할 환경변수 이름 목록

Default:
[]
downloads object[]

선행 job의 export.artifacts를 현재 job으로 가져옵니다.

Default:
[]
run-on object

실행환경 설정

image string

docker image

Default: "+@basebox"
pattern=^(\+@[a-z0-9-]+|\+\/[a-z0-9/-]+|[a-z0-9/._-]+)(:[a-z0-9A-Z._-]+)?$
resources string | object

실행에 사용할 리소스 크기 설정

use string[]

실행환경에서 사용할 기능 설정

Default:
[]
platform string

실행환경 플랫폼

Default: "k8s"
Values: "k8s" "macos"
selectors object[]

platform: macos 일때 사용할 agent를 선택

Default:
[]
app-center-releases object[]

artifact로 지정된 .apk/.ipa 파일을 appcenter로 릴리즈

git-ops object

GitOps 방식의 K8S Deploy를 위한 manifest repo 업데이트

manifest object required

K8S manifest repo 정보

2 nested properties
repo string required

repo('owner/repo')

pattern=[.a-zA-Z0-9_-]+/[.a-zA-Z0-9_-]+
branch string required

branch

pattern=[a-zA-Z0-9/_.@-]+
update string[] required

manifest repo를 업데이트하기 위한 명령

minItems=1
with-artifacts string[]

빌드 작업에서 manifest reop로 전달할 artifacts

sync-git-tag boolean

manifest repo에 git tag를 동기화할지 여부. push tag 빌드일때만 동작

Default: false