oto/apps/runner/assets/yaml/sample/07_file.yaml
toki 86afabb3eb refactor(runner): 런타임 패키지를 앱 하위로 이동한다
독립 control plane 구성을 위해 기존 Dart CLI/runtime을 runner 앱 경계로 옮기고, 후속 client/core/root 작업을 같은 마일스톤 task group에 연결한다.
2026-06-05 06:34:45 +09:00

85 lines
1.9 KiB
YAML

---
# [샘플] 파일 조작
property:
workspace: /path/to/project
version: 1.0.0
pipeline:
id: main
workflow:
- exe: read-config # 파일 읽기
- exe: string-replace # 내용 치환
- exe: write-config # 파일 쓰기
- exe: copy-release # 복사
- exe: zip-release # 압축
- exe: delete-temp # 임시 파일 삭제
commands:
# 파일 전체 내용 읽기 → property 저장
- command: FileRead
id: read-config
param:
path: <!property.workspace>/config/app.conf
setContent: <@property.configContent>
showPrint: false
# 문자열 치환
- command: StringReplace
id: string-replace
param:
text: <!property.configContent>
pair:
- from: "VERSION_PLACEHOLDER"
to: <!property.version>
- from: "ENV_PLACEHOLDER"
to: prod
setValue: <@property.configContent>
# 파일에 내용 쓰기
- command: FileWrite
id: write-config
param:
path: <!property.workspace>/build/app.conf
content: <!property.configContent>
# 파일/디렉토리 복사 (copyMap: from → to)
- command: Copy
id: copy-release
param:
ignorePattern:
- "*.log"
- ".DS_Store"
copyMap:
"<!property.workspace>/build/*": "<!property.workspace>/release"
# 이동 (isMove: true)
# - command: Copy
# id: move-file
# param:
# isMove: true
# copyMap:
# "<!property.workspace>/tmp/output": "<!property.workspace>/release"
# 압축
- command: Zip
id: zip-release
param:
zipFile: "<!property.workspace>/dist/release_v<!property.version>.zip"
zipList:
- "<!property.workspace>/release"
# 파일/디렉토리 삭제
- command: Delete
id: delete-temp
param:
list:
- "<!property.workspace>/tmp"
- "<!property.workspace>/build"
# 파일 메타데이터 조회
- command: FileInfo
id: file-info
param:
path: "<!property.workspace>/dist/release_v<!property.version>.zip"
setInfo: <@property.fileInfo>