task-pipeliner 0.3.4 → 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ko.md +69 -69
- package/README.md +71 -70
- package/dist/index.cjs +175 -170
- package/package.json +1 -1
package/README.ko.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> 조건 기반 실행과 아름다운 CLI 출력을 제공하는 강력한 워크플로우 오케스트레이션 도구
|
|
4
4
|
|
|
5
|
-
**버전:** 0.3.
|
|
5
|
+
**버전:** 0.3.6
|
|
6
6
|
|
|
7
7
|

|
|
8
8
|
|
|
@@ -224,7 +224,7 @@ npx tp run workflow.yaml
|
|
|
224
224
|
name: My Workflow
|
|
225
225
|
|
|
226
226
|
steps:
|
|
227
|
-
- run: echo "Hello, World!"
|
|
227
|
+
- run: 'echo "Hello, World!"'
|
|
228
228
|
|
|
229
229
|
- choose:
|
|
230
230
|
message: "무엇을 하시겠습니까?"
|
|
@@ -238,12 +238,12 @@ steps:
|
|
|
238
238
|
- when:
|
|
239
239
|
var:
|
|
240
240
|
action: build
|
|
241
|
-
run: npm run build
|
|
241
|
+
run: 'npm run build'
|
|
242
242
|
|
|
243
243
|
- when:
|
|
244
244
|
var:
|
|
245
245
|
action: test
|
|
246
|
-
run: npm test
|
|
246
|
+
run: 'npm test'
|
|
247
247
|
```
|
|
248
248
|
|
|
249
249
|
**JSON 형식 (`workflow.json`):**
|
|
@@ -509,12 +509,12 @@ steps: # 필수: 실행할 단계 배열
|
|
|
509
509
|
```yaml
|
|
510
510
|
# 간단한 명령
|
|
511
511
|
steps:
|
|
512
|
-
- run: npm install
|
|
512
|
+
- run: 'npm install'
|
|
513
513
|
|
|
514
514
|
# 조건이 있는 명령
|
|
515
515
|
- when:
|
|
516
516
|
file: ./package.json
|
|
517
|
-
run: npm install
|
|
517
|
+
run: 'npm install'
|
|
518
518
|
|
|
519
519
|
# 변수 입력
|
|
520
520
|
- choose:
|
|
@@ -529,55 +529,55 @@ steps:
|
|
|
529
529
|
as: version
|
|
530
530
|
|
|
531
531
|
# 변수 치환이 있는 명령
|
|
532
|
-
- run: echo "Building {{version}}"
|
|
532
|
+
- run: 'echo "Building {{version}}"'
|
|
533
533
|
|
|
534
534
|
# 타임아웃이 있는 명령 (30초)
|
|
535
|
-
- run: npm install
|
|
535
|
+
- run: 'npm install'
|
|
536
536
|
timeout: 30
|
|
537
537
|
|
|
538
538
|
# 재시도가 있는 명령 (최대 3번 재시도)
|
|
539
|
-
- run: npm install
|
|
539
|
+
- run: 'npm install'
|
|
540
540
|
retry: 3
|
|
541
541
|
|
|
542
542
|
# 무한 재시도 명령 (성공할 때까지 재시도)
|
|
543
|
-
- run: npm install
|
|
543
|
+
- run: 'npm install'
|
|
544
544
|
retry: Infinity
|
|
545
545
|
|
|
546
546
|
# PM2처럼 프로세스 관리: 서버가 죽으면 자동 재시작
|
|
547
|
-
- run: node server.js
|
|
547
|
+
- run: 'node server.js'
|
|
548
548
|
retry: Infinity
|
|
549
549
|
|
|
550
550
|
# 타임아웃과 재시도 모두 사용
|
|
551
|
-
- run: npm install
|
|
551
|
+
- run: 'npm install'
|
|
552
552
|
timeout: 60
|
|
553
553
|
retry: 2
|
|
554
554
|
|
|
555
555
|
# 실패 시 fallback 명령 실행
|
|
556
|
-
- run: pnpm lint
|
|
556
|
+
- run: 'pnpm lint'
|
|
557
557
|
onError:
|
|
558
|
-
run: pnpm lint:fix
|
|
558
|
+
run: 'pnpm lint:fix'
|
|
559
559
|
|
|
560
560
|
# 여러 단계로 이어지는 fallback 체인
|
|
561
|
-
- run: step1
|
|
561
|
+
- run: 'step1'
|
|
562
562
|
onError:
|
|
563
|
-
run: step2
|
|
563
|
+
run: 'step2'
|
|
564
564
|
onError:
|
|
565
|
-
run: step3
|
|
565
|
+
run: 'step3'
|
|
566
566
|
|
|
567
567
|
# 실패를 기록만 하고 워크플로우는 계속 진행
|
|
568
|
-
- run: pnpm typecheck
|
|
568
|
+
- run: 'pnpm typecheck'
|
|
569
569
|
continue: true
|
|
570
570
|
onError:
|
|
571
|
-
run: echo "Type check failed, but continuing..."
|
|
571
|
+
run: 'echo "Type check failed, but continuing..."'
|
|
572
572
|
|
|
573
573
|
# 커스텀 쉘 사용 (스텝별)
|
|
574
|
-
- run: echo $SHELL
|
|
574
|
+
- run: 'echo $SHELL'
|
|
575
575
|
shell:
|
|
576
576
|
- zsh
|
|
577
577
|
- -c
|
|
578
578
|
|
|
579
579
|
# bash 로그인 쉘 사용
|
|
580
|
-
- run: source ~/.bashrc && echo "프로필 로드됨"
|
|
580
|
+
- run: 'source ~/.bashrc && echo "프로필 로드됨"'
|
|
581
581
|
shell:
|
|
582
582
|
- bash
|
|
583
583
|
- -lc
|
|
@@ -679,7 +679,7 @@ steps:
|
|
|
679
679
|
- when:
|
|
680
680
|
var: # 변수를 사용한다는 정의
|
|
681
681
|
env: prod # 'env' 변수가 'prod'와 같은지 확인
|
|
682
|
-
run: echo "프로덕션에 배포 중"
|
|
682
|
+
run: 'echo "프로덕션에 배포 중"'
|
|
683
683
|
```
|
|
684
684
|
|
|
685
685
|
---
|
|
@@ -733,13 +733,13 @@ steps:
|
|
|
733
733
|
**사용:**
|
|
734
734
|
```yaml
|
|
735
735
|
# 명령에서 사용
|
|
736
|
-
- run: echo "Building version {{version}}"
|
|
736
|
+
- run: 'echo "Building version {{version}}"'
|
|
737
737
|
|
|
738
738
|
# 조건에서 확인
|
|
739
739
|
- when:
|
|
740
740
|
var:
|
|
741
741
|
version: "1.0.0"
|
|
742
|
-
run: echo "안정 버전 배포 중"
|
|
742
|
+
run: 'echo "안정 버전 배포 중"'
|
|
743
743
|
```
|
|
744
744
|
|
|
745
745
|
---
|
|
@@ -768,19 +768,19 @@ steps:
|
|
|
768
768
|
# 기본 병렬 실행
|
|
769
769
|
# parallel 내부의 각 step은 `-`로 시작하며, `steps`와 동일한 형식
|
|
770
770
|
- parallel:
|
|
771
|
-
- run: npm run test:unit
|
|
772
|
-
- run: npm run test:integration
|
|
773
|
-
- run: npm run lint
|
|
771
|
+
- run: 'npm run test:unit'
|
|
772
|
+
- run: 'npm run test:integration'
|
|
773
|
+
- run: 'npm run lint'
|
|
774
774
|
|
|
775
775
|
# 조건이 있는 병렬
|
|
776
776
|
# 각 step은 자신만의 `when` 조건을 가질 수 있습니다
|
|
777
777
|
- parallel:
|
|
778
778
|
- when:
|
|
779
779
|
file: ./src
|
|
780
|
-
run: echo "프론트엔드 빌드 중..."
|
|
780
|
+
run: 'echo "프론트엔드 빌드 중..."'
|
|
781
781
|
- when:
|
|
782
782
|
file: ./api
|
|
783
|
-
run: echo "백엔드 빌드 중..."
|
|
783
|
+
run: 'echo "백엔드 빌드 중..."'
|
|
784
784
|
|
|
785
785
|
# 조건부 병렬 블록
|
|
786
786
|
# 전체 parallel 블록에 `when` 조건을 적용할 수 있습니다
|
|
@@ -788,15 +788,15 @@ steps:
|
|
|
788
788
|
var:
|
|
789
789
|
env: staging
|
|
790
790
|
parallel:
|
|
791
|
-
- run: npm run test
|
|
792
|
-
- run: npm run lint
|
|
791
|
+
- run: 'npm run test'
|
|
792
|
+
- run: 'npm run lint'
|
|
793
793
|
|
|
794
794
|
# 중첩 parallel (허용); parallel 내부에는 run / parallel / fail만 사용
|
|
795
795
|
- parallel:
|
|
796
|
-
- run: npm run test
|
|
796
|
+
- run: 'npm run test'
|
|
797
797
|
- parallel:
|
|
798
|
-
- run: npm run lint
|
|
799
|
-
- run: npm run typecheck
|
|
798
|
+
- run: 'npm run lint'
|
|
799
|
+
- run: 'npm run typecheck'
|
|
800
800
|
```
|
|
801
801
|
|
|
802
802
|
**동작:**
|
|
@@ -870,16 +870,16 @@ when:
|
|
|
870
870
|
```yaml
|
|
871
871
|
- when:
|
|
872
872
|
file: ./dist
|
|
873
|
-
run: echo "빌드가 존재합니다"
|
|
873
|
+
run: 'echo "빌드가 존재합니다"'
|
|
874
874
|
|
|
875
875
|
- when:
|
|
876
876
|
file: ./package.json
|
|
877
|
-
run: npm install
|
|
877
|
+
run: 'npm install'
|
|
878
878
|
|
|
879
879
|
- when:
|
|
880
880
|
not:
|
|
881
881
|
file: ./node_modules
|
|
882
|
-
run: npm install
|
|
882
|
+
run: 'npm install'
|
|
883
883
|
```
|
|
884
884
|
|
|
885
885
|
**동작:**
|
|
@@ -910,20 +910,20 @@ when:
|
|
|
910
910
|
- when:
|
|
911
911
|
var:
|
|
912
912
|
env: prod
|
|
913
|
-
run: echo "프로덕션에 배포 중"
|
|
913
|
+
run: 'echo "프로덕션에 배포 중"'
|
|
914
914
|
|
|
915
915
|
# version이 특정 값과 같은지 확인
|
|
916
916
|
- when:
|
|
917
917
|
var:
|
|
918
918
|
version: "1.0.0"
|
|
919
|
-
run: echo "안정 버전 배포 중"
|
|
919
|
+
run: 'echo "안정 버전 배포 중"'
|
|
920
920
|
|
|
921
921
|
# 여러 변수 확인 (모두 일치해야 함)
|
|
922
922
|
- when:
|
|
923
923
|
var:
|
|
924
924
|
env: staging
|
|
925
925
|
version: "2.0.0"
|
|
926
|
-
run: echo "스테이징에 v2.0.0 배포 중"
|
|
926
|
+
run: 'echo "스테이징에 v2.0.0 배포 중"'
|
|
927
927
|
```
|
|
928
928
|
|
|
929
929
|
**동작:**
|
|
@@ -955,12 +955,12 @@ when:
|
|
|
955
955
|
# 변수가 존재하는지 확인
|
|
956
956
|
- when:
|
|
957
957
|
var: version
|
|
958
|
-
run: echo "Version: {{version}}"
|
|
958
|
+
run: 'echo "Version: {{version}}"'
|
|
959
959
|
|
|
960
960
|
# 'has' 별칭 사용
|
|
961
961
|
- when:
|
|
962
962
|
has: projectName
|
|
963
|
-
run: echo "Project: {{projectName}}"
|
|
963
|
+
run: 'echo "Project: {{projectName}}"'
|
|
964
964
|
```
|
|
965
965
|
|
|
966
966
|
**동작:**
|
|
@@ -994,7 +994,7 @@ when:
|
|
|
994
994
|
- file: ./dist
|
|
995
995
|
- var:
|
|
996
996
|
env: production
|
|
997
|
-
run: echo "프로덕션 빌드 준비 완료"
|
|
997
|
+
run: 'echo "프로덕션 빌드 준비 완료"'
|
|
998
998
|
|
|
999
999
|
- when:
|
|
1000
1000
|
all:
|
|
@@ -1003,7 +1003,7 @@ when:
|
|
|
1003
1003
|
- var:
|
|
1004
1004
|
version: "2.0.0"
|
|
1005
1005
|
- file: ./dist
|
|
1006
|
-
run: echo "스테이징에 v2.0.0 배포 중"
|
|
1006
|
+
run: 'echo "스테이징에 v2.0.0 배포 중"'
|
|
1007
1007
|
```
|
|
1008
1008
|
|
|
1009
1009
|
**동작:**
|
|
@@ -1034,13 +1034,13 @@ when:
|
|
|
1034
1034
|
env: staging
|
|
1035
1035
|
- var:
|
|
1036
1036
|
env: production
|
|
1037
|
-
run: echo "서버에 배포 중"
|
|
1037
|
+
run: 'echo "서버에 배포 중"'
|
|
1038
1038
|
|
|
1039
1039
|
- when:
|
|
1040
1040
|
any:
|
|
1041
1041
|
- file: ./dist
|
|
1042
1042
|
- file: ./build
|
|
1043
|
-
run: echo "빌드 출력을 찾았습니다"
|
|
1043
|
+
run: 'echo "빌드 출력을 찾았습니다"'
|
|
1044
1044
|
```
|
|
1045
1045
|
|
|
1046
1046
|
**동작:**
|
|
@@ -1075,7 +1075,7 @@ when:
|
|
|
1075
1075
|
not:
|
|
1076
1076
|
var:
|
|
1077
1077
|
env: prod
|
|
1078
|
-
run: echo "프로덕션 환경이 아닙니다"
|
|
1078
|
+
run: 'echo "프로덕션 환경이 아닙니다"'
|
|
1079
1079
|
|
|
1080
1080
|
# 복잡한 부정
|
|
1081
1081
|
- when:
|
|
@@ -1084,7 +1084,7 @@ when:
|
|
|
1084
1084
|
- file: ./dist
|
|
1085
1085
|
- var:
|
|
1086
1086
|
env: prod
|
|
1087
|
-
run: echo "프로덕션 준비가 되지 않았습니다"
|
|
1087
|
+
run: 'echo "프로덕션 준비가 되지 않았습니다"'
|
|
1088
1088
|
```
|
|
1089
1089
|
|
|
1090
1090
|
**동작:**
|
|
@@ -1112,7 +1112,7 @@ when:
|
|
|
1112
1112
|
- not:
|
|
1113
1113
|
var:
|
|
1114
1114
|
version: "0.0.0"
|
|
1115
|
-
run: echo "배포 준비 완료"
|
|
1115
|
+
run: 'echo "배포 준비 완료"'
|
|
1116
1116
|
|
|
1117
1117
|
# 여러 수준의 중첩
|
|
1118
1118
|
- when:
|
|
@@ -1126,7 +1126,7 @@ when:
|
|
|
1126
1126
|
env: staging
|
|
1127
1127
|
- not:
|
|
1128
1128
|
file: ./test-results
|
|
1129
|
-
run: echo "조건부 배포"
|
|
1129
|
+
run: 'echo "조건부 배포"'
|
|
1130
1130
|
```
|
|
1131
1131
|
|
|
1132
1132
|
---
|
|
@@ -1137,9 +1137,9 @@ when:
|
|
|
1137
1137
|
|
|
1138
1138
|
**문법:**
|
|
1139
1139
|
```yaml
|
|
1140
|
-
run: echo "{{variableName}}"
|
|
1140
|
+
run: 'echo "{{variableName}}"'
|
|
1141
1141
|
# 또는 선택적으로 공백 사용
|
|
1142
|
-
run: echo "{{ variableName }}"
|
|
1142
|
+
run: 'echo "{{ variableName }}"'
|
|
1143
1143
|
```
|
|
1144
1144
|
|
|
1145
1145
|
**⚠️ 중요: YAML 문법 규칙**
|
|
@@ -1148,9 +1148,9 @@ run: echo "{{ variableName }}"
|
|
|
1148
1148
|
|
|
1149
1149
|
✅ **안전한 패턴:**
|
|
1150
1150
|
```yaml
|
|
1151
|
-
#
|
|
1152
|
-
- run: echo "Building {{version}}..."
|
|
1153
|
-
- run: npm run build --version={{version}}
|
|
1151
|
+
# 작은따옴표로 감싸기 (권장)
|
|
1152
|
+
- run: 'echo "Building {{version}}..."'
|
|
1153
|
+
- run: 'npm run build --version={{version}}'
|
|
1154
1154
|
|
|
1155
1155
|
# 전체 명령어를 작은따옴표로 감싸기
|
|
1156
1156
|
- run: 'echo "Selected: {{mode}}"'
|
|
@@ -1171,7 +1171,7 @@ run: echo "{{ variableName }}"
|
|
|
1171
1171
|
- prompt:
|
|
1172
1172
|
message: "프로젝트 이름을 입력하세요:"
|
|
1173
1173
|
as: projectName
|
|
1174
|
-
- run: echo "Building {{projectName}}..."
|
|
1174
|
+
- run: 'echo "Building {{projectName}}..."'
|
|
1175
1175
|
|
|
1176
1176
|
# 선택 변수 사용
|
|
1177
1177
|
- choose:
|
|
@@ -1180,10 +1180,10 @@ run: echo "{{ variableName }}"
|
|
|
1180
1180
|
- id: dev
|
|
1181
1181
|
label: "개발"
|
|
1182
1182
|
as: env
|
|
1183
|
-
- run: echo "Deploying to {{env}}"
|
|
1183
|
+
- run: 'echo "Deploying to {{env}}"'
|
|
1184
1184
|
|
|
1185
1185
|
# 여러 변수
|
|
1186
|
-
- run: echo "Building {{projectName}} version {{version}} for {{env}}"
|
|
1186
|
+
- run: 'echo "Building {{projectName}} version {{version}} for {{env}}"'
|
|
1187
1187
|
```
|
|
1188
1188
|
|
|
1189
1189
|
**동작:**
|
|
@@ -1203,7 +1203,7 @@ baseDir: ./
|
|
|
1203
1203
|
|
|
1204
1204
|
steps:
|
|
1205
1205
|
# 1. 간단한 명령
|
|
1206
|
-
- run: echo "워크플로우 시작 중..."
|
|
1206
|
+
- run: 'echo "워크플로우 시작 중..."'
|
|
1207
1207
|
|
|
1208
1208
|
# 2. 변수 저장이 있는 사용자 선택
|
|
1209
1209
|
- choose:
|
|
@@ -1229,12 +1229,12 @@ steps:
|
|
|
1229
1229
|
- when:
|
|
1230
1230
|
var:
|
|
1231
1231
|
env: dev
|
|
1232
|
-
run: echo "개발 환경에 배포 중..."
|
|
1232
|
+
run: 'echo "개발 환경에 배포 중..."'
|
|
1233
1233
|
|
|
1234
1234
|
- when:
|
|
1235
1235
|
var:
|
|
1236
1236
|
env: staging
|
|
1237
|
-
run: echo "스테이징에 배포 중..."
|
|
1237
|
+
run: 'echo "스테이징에 배포 중..."'
|
|
1238
1238
|
|
|
1239
1239
|
# 5. 복잡한 조건 (all)
|
|
1240
1240
|
- when:
|
|
@@ -1243,22 +1243,22 @@ steps:
|
|
|
1243
1243
|
env: prod
|
|
1244
1244
|
- var: deployReason
|
|
1245
1245
|
- file: ./dist
|
|
1246
|
-
run: echo "프로덕션 배포 승인됨"
|
|
1246
|
+
run: 'echo "프로덕션 배포 승인됨"'
|
|
1247
1247
|
|
|
1248
1248
|
# 6. 병렬 실행
|
|
1249
1249
|
- parallel:
|
|
1250
|
-
- run: npm run test:unit
|
|
1251
|
-
- run: npm run test:integration
|
|
1252
|
-
- run: npm run lint
|
|
1250
|
+
- run: 'npm run test:unit'
|
|
1251
|
+
- run: 'npm run test:integration'
|
|
1252
|
+
- run: 'npm run lint'
|
|
1253
1253
|
|
|
1254
1254
|
# 6.5. 스텝별 쉘 오버라이드
|
|
1255
|
-
- run: echo "zsh로 실행"
|
|
1255
|
+
- run: 'echo "zsh로 실행"'
|
|
1256
1256
|
shell: [zsh, -c] # 이 스텝만 워크플로우 쉘 오버라이드
|
|
1257
1257
|
|
|
1258
1258
|
# 7. 파일 존재 확인
|
|
1259
1259
|
- when:
|
|
1260
1260
|
file: ./test-results
|
|
1261
|
-
run: echo "테스트 완료"
|
|
1261
|
+
run: 'echo "테스트 완료"'
|
|
1262
1262
|
|
|
1263
1263
|
# 8. 결합된 조건 (any)
|
|
1264
1264
|
- when:
|
|
@@ -1267,7 +1267,7 @@ steps:
|
|
|
1267
1267
|
env: staging
|
|
1268
1268
|
- var:
|
|
1269
1269
|
env: prod
|
|
1270
|
-
run: echo "서버에 배포 중..."
|
|
1270
|
+
run: 'echo "서버에 배포 중..."'
|
|
1271
1271
|
|
|
1272
1272
|
# 9. 부정
|
|
1273
1273
|
- when:
|
|
@@ -1277,7 +1277,7 @@ steps:
|
|
|
1277
1277
|
message: "빌드 출력을 찾을 수 없습니다"
|
|
1278
1278
|
|
|
1279
1279
|
# 10. 변수 치환
|
|
1280
|
-
- run: echo "Deploying {{projectName}} version {{version}} to {{env}}"
|
|
1280
|
+
- run: 'echo "Deploying {{projectName}} version {{version}} to {{env}}"'
|
|
1281
1281
|
```
|
|
1282
1282
|
|
|
1283
1283
|
---
|