oto/assets/pipeline-test.yaml
leedongmyung[desktop] a9c3e03d1c add while condition
2023-11-26 09:46:42 +09:00

89 lines
1.9 KiB
YAML

---
property:
workspace: .
pipeline:
id: main
workflow:
- async: git
- exe: git-rev
- exe: json-reader
#동기식 실행, 해당 수행이 끝나야만 다음 스텝실행, command일경우 해당 id 기입
- exe: appData
#비동기식 실행, 해당 수행이 완료됨과 관계없이 실행하고 다음 스텝을 실행한다
# - exe: buildDart
- async: git-count
- while:
condition-int: <!property.git-count> == null
on-do:
- exe: git
#일반적인 if문과 동일
- if:
#property의 내용은 기본 dynamic(Object)형으로써, 비교시 정확한 캐스팅 필요, 적지 않을시 기본 string
condition-string: <!property.git-rev> != <!property.old-git-rev>
on-true:
- exe: zip
commands:
### 콜백이 필요없는 단순 깃 명령 호출
- command: Git
id: git
param:
workspace: ./../dart_framework
commands:
- restore .
- clean -f
### 깃 리비전 정보 저장
- command: GitRev
id: git-rev
param:
result-value: <!property.git-rev>
### 깃 커밋카운트 저장
- command: GitCount
id: git-count
param:
result-value: <!property.git-count>
### Json value read
- command: JsonReader
id: json-reader
param:
path: ./assets/data/app_data.json
pair:
- from: gitHash
to: <!property.old-git-rev>
- from: version
to: <!property.old-version>
- from: gitCount
to: <!property.old-git-count>
### Version 쓰기
- command: CreateAppData
id: appData
param:
scm: Git
name: OTO
relativeAssetPath: assets/data
return-version: "<!property.version>"
return-hash: "<!property.hash>"
### 실행가능한 파일로 빌드
- command: BuildDart
id: buildDart
param: {}
### 최종 zip 파일 형태로 저장
- command: Zip
id: zip
param:
zipFile: "<!property.workspace>/release/oto_win_v<!property.version>.zip"
zipList:
- "<!property.workspace>/release/oto_cli.exe"