oto/assets/pipeline-test.yaml
2023-12-13 09:02:54 +09:00

119 lines
2.7 KiB
YAML

---
property:
workspace: .
revision: c65a8bb
pipeline:
id: main
workflow:
# - async: git
- exe: git
- exe: buildDart
# - exe: json-reader
#동기식 실행, 해당 수행이 끝나야만 다음 스텝실행, command일경우 해당 id 기입
# - exe: appData
#비동기식 실행, 해당 수행이 완료됨과 관계없이 실행하고 다음 스텝을 실행한다
# - exe: buildDart
# - switch:
# condition-string: <!property.old-version>
# cases:
# #case 아이템 하나에 여러 작업을 array형태로 할당
# - value: 0.0.153
# tasks:
# - exe: git
# - async: git-count
# - wait-until-string: <!state.git-count> != complete
# - async: git-rev
# - while:
# condition-string: <!property.git-rev> == null
# on-do:
# - exe: git
# - switch:
# condition-string: <!property.git-rev>
# cases:
# #case 아이템 하나에 여러 작업을 array형태로 할당
# - value: b6c2d44b2ec8b1a22fd9a88f4779e250b6ddc6b1
# tasks:
# - exe: git
#일반적인 if문과 동일
# - if:
# #property의 내용은 기본 dynamic(Object)형으로써, 비교시 정확한 캐스팅 필요, 적지 않을시 기본 string
# condition-string: <!property.git-rev> != <!property.old-git-rev>
# on-true:
# - exe: zip
commands:
### 콜백이 필요없는 단순 Git 명령 호출
- command: Git
id: git
param:
commands:
- restore .
- clean -f
- checkout c65a8bb
### Git 최신 리비전으로 업데이트
- command: Git
id: git-update
param:
commands:
- fetch origin
- reset --hard origin/master
### 깃 리비전 정보 저장
- 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"