project-auto-wizard 0.14.0 → 0.15.1

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.
Files changed (64) hide show
  1. package/README.ja.md +3 -1
  2. package/README.ko.md +3 -1
  3. package/README.md +4 -2
  4. package/README.zh-CN.md +3 -1
  5. package/package.json +1 -1
  6. package/payload/config/breaking-changes.json +31 -5
  7. package/payload/config/wizard-prompts.yml +0 -4
  8. package/payload/scripts/changelog_manager.py +8 -8
  9. package/payload/scripts/messages.py +460 -24
  10. package/payload/scripts/version_manager.py +102 -73
  11. package/payload/version.yml.template +2 -2
  12. package/payload/workflows/common/PROJECT-COMMON-AI-PR-SUMMARY.yaml +9 -4
  13. package/payload/workflows/common/PROJECT-COMMON-AUTO-CHANGELOG-CONTROL.yaml +62 -30
  14. package/payload/workflows/common/PROJECT-COMMON-README-VERSION-UPDATE.yaml +96 -44
  15. package/payload/workflows/common/PROJECT-COMMON-RELEASE-PUBLISH.yaml +79 -35
  16. package/payload/workflows/common/PROJECT-COMMON-VERSION-CONTROL.yaml +71 -35
  17. package/payload/workflows/flutter/PROJECT-FLUTTER-ANDROID-FIREBASE-CICD.yaml +24 -8
  18. package/payload/workflows/flutter/PROJECT-FLUTTER-ANDROID-PLAYSTORE-CICD.yaml +29 -10
  19. package/payload/workflows/flutter/PROJECT-FLUTTER-ANDROID-SELFHOSTED-CICD.yaml +57 -23
  20. package/payload/workflows/flutter/PROJECT-FLUTTER-ANDROID-TEST-APK.yaml +155 -72
  21. package/payload/workflows/flutter/PROJECT-FLUTTER-APP-BUILD-TRIGGER.yaml +49 -20
  22. package/payload/workflows/flutter/PROJECT-FLUTTER-CI.yaml +162 -62
  23. package/payload/workflows/flutter/PROJECT-FLUTTER-IOS-TEST-TESTFLIGHT.yaml +184 -87
  24. package/payload/workflows/flutter/PROJECT-FLUTTER-IOS-TESTFLIGHT.yaml +38 -15
  25. package/payload/workflows/go/PROJECT-GO-CI.yaml +14 -5
  26. package/payload/workflows/go/PROJECT-GO-PR-PREVIEW.yaml +375 -120
  27. package/payload/workflows/go/PROJECT-GO-SIMPLE-CICD.yaml +9 -4
  28. package/payload/workflows/python/PROJECT-PYTHON-CI.yaml +12 -4
  29. package/payload/workflows/python/PROJECT-PYTHON-PR-PREVIEW.yaml +375 -120
  30. package/payload/workflows/python/PROJECT-PYTHON-SIMPLE-CICD.yaml +9 -4
  31. package/payload/workflows/react/PROJECT-REACT-CI.yaml +38 -9
  32. package/payload/workflows/react/PROJECT-REACT-CICD.yaml +19 -5
  33. package/payload/workflows/spring/PROJECT-SPRING-CI.yml +71 -35
  34. package/payload/workflows/spring/server-deploy/PROJECT-SPRING-NONSTOP-NGINX-CICD.yaml +9 -6
  35. package/payload/workflows/spring/server-deploy/PROJECT-SPRING-NONSTOP-TRAEFIK-CICD.yaml +7 -4
  36. package/payload/workflows/spring/server-deploy/PROJECT-SPRING-PR-PREVIEW.yaml +425 -144
  37. package/payload/workflows/spring/server-deploy/PROJECT-SPRING-SIMPLE-CICD.yaml +7 -4
  38. package/src/cli/args.js +17 -7
  39. package/src/commands/doctor.js +16 -0
  40. package/src/commands/dry-run.js +10 -1
  41. package/src/commands/full.js +5 -2
  42. package/src/commands/interactive.js +4 -1
  43. package/src/commands/status.js +14 -1
  44. package/src/core/copy/readme.js +58 -2
  45. package/src/core/copy/simple.js +31 -0
  46. package/src/core/copy/workflows.js +2 -2
  47. package/src/core/deploy-style.js +1 -1
  48. package/src/core/detect.js +3 -2
  49. package/src/core/types.js +15 -8
  50. package/src/core/version-yml.js +52 -6
  51. package/src/i18n/catalog/en/cli.js +1 -0
  52. package/src/i18n/catalog/en/commands.js +9 -0
  53. package/src/i18n/catalog/en/copy.js +1 -0
  54. package/src/i18n/catalog/en/core2.js +3 -0
  55. package/src/i18n/catalog/ko/cli.js +1 -0
  56. package/src/i18n/catalog/ko/commands.js +9 -0
  57. package/src/i18n/catalog/ko/copy.js +1 -0
  58. package/src/i18n/catalog/ko/core2.js +3 -0
  59. package/src/index.js +8 -4
  60. package/src/ui/env-plan.js +1 -1
  61. package/src/ui/prompts.js +7 -3
  62. package/src/ui/summary.js +1 -1
  63. package/payload/workflows/next/PROJECT-NEXT-CI.yaml +0 -241
  64. package/payload/workflows/next/PROJECT-NEXT-CICD.yaml +0 -330
@@ -88,6 +88,7 @@ jobs:
88
88
  SSH_KEY: ${{ secrets.SSH_KEY }}
89
89
  DOCKERFILE: Dockerfile
90
90
  run: |
91
+ [ -f "$GITHUB_WORKSPACE/.github/scripts/messages.py" ] || { echo "::error::messages.py is missing; rerun \`npx project-auto-wizard --mode full --force\`"; exit 1; }
91
92
  m() { (cd "$GITHUB_WORKSPACE" && python3 .github/scripts/messages.py get "$@"); }
92
93
  MISSING=""
93
94
  for NAME in DOCKERHUB_USERNAME DOCKERHUB_TOKEN SERVER_HOST SERVER_USER; do
@@ -115,6 +116,7 @@ jobs:
115
116
 
116
117
  - name: Free up disk space
117
118
  run: |
119
+ [ -f "$GITHUB_WORKSPACE/.github/scripts/messages.py" ] || { echo "::error::messages.py is missing; rerun \`npx project-auto-wizard --mode full --force\`"; exit 1; }
118
120
  m() { (cd "$GITHUB_WORKSPACE" && python3 .github/scripts/messages.py get "$@"); }
119
121
  m cicd.disk_before
120
122
  df -h
@@ -134,6 +136,7 @@ jobs:
134
136
  - name: Create .env file
135
137
  working-directory: ${{ env.PROJECT_PATH }}
136
138
  run: |
139
+ [ -f "$GITHUB_WORKSPACE/.github/scripts/messages.py" ] || { echo "::error::messages.py is missing; rerun \`npx project-auto-wizard --mode full --force\`"; exit 1; }
137
140
  m() { (cd "$GITHUB_WORKSPACE" && python3 .github/scripts/messages.py get "$@"); }
138
141
  cat > .env << 'EOF'
139
142
  ${{ secrets.ENV_FILE }}
@@ -141,16 +144,16 @@ jobs:
141
144
  m cicd.dotenv_created
142
145
 
143
146
  - name: Set up Docker Buildx
144
- uses: docker/setup-buildx-action@v3
147
+ uses: docker/setup-buildx-action@v4
145
148
 
146
149
  - name: Log in to DockerHub
147
- uses: docker/login-action@v3
150
+ uses: docker/login-action@v4
148
151
  with:
149
152
  username: ${{ secrets.DOCKERHUB_USERNAME }}
150
153
  password: ${{ secrets.DOCKERHUB_TOKEN }}
151
154
 
152
155
  - name: Build and push Docker image
153
- uses: docker/build-push-action@v5
156
+ uses: docker/build-push-action@v7
154
157
  with:
155
158
  context: ${{ env.PROJECT_PATH }}
156
159
  file: ${{ env.PROJECT_PATH }}/Dockerfile
@@ -163,6 +166,7 @@ jobs:
163
166
  - name: Clean up after build
164
167
  if: always()
165
168
  run: |
169
+ [ -f "$GITHUB_WORKSPACE/.github/scripts/messages.py" ] || { echo "::error::messages.py is missing; rerun \`npx project-auto-wizard --mode full --force\`"; exit 1; }
166
170
  m() { (cd "$GITHUB_WORKSPACE" && python3 .github/scripts/messages.py get "$@"); }
167
171
  m cicd.post_build_cleanup
168
172
  docker system prune -f || true
@@ -188,6 +192,7 @@ jobs:
188
192
 
189
193
  - name: Load messages
190
194
  run: |
195
+ [ -f .github/scripts/messages.py ] || { echo "::error::messages.py is missing; rerun \`npx project-auto-wizard --mode full --force\`"; exit 1; }
191
196
  python3 .github/scripts/messages.py dump cicd. | PYTHONIOENCODING=utf-8 python3 -c 'import json,sys; [print("PAW_M_" + k.replace(".", "_") + "=" + v) for k, v in json.load(sys.stdin).items()]' >> "$GITHUB_ENV"
192
197
 
193
198
  - name: Deploy
@@ -371,6 +376,6 @@ jobs:
371
376
  m "${{ env.PAW_M_cicd_summary_branch }}" branch="$BRANCH"
372
377
  m "${{ env.PAW_M_cicd_summary_container }}" container="$CONTAINER_NAME"
373
378
  m "${{ env.PAW_M_cicd_summary_port }}" port="$PORT"
374
- m "${{ env.PAW_M_cicd_summary_time }}" time="$(date '+%Y-%m-%d %H:%M:%S')"
379
+ m "${{ env.PAW_M_cicd_summary_time }}" time="$(date -u '+%Y-%m-%d %H:%M:%S UTC')"
375
380
  echo ""
376
381
  m "${{ env.PAW_M_cicd_summary_url }}" url="http://${{ secrets.SERVER_HOST }}:${PORT}"
@@ -69,6 +69,7 @@ jobs:
69
69
 
70
70
  - name: Create .env file
71
71
  run: |
72
+ [ -f "$GITHUB_WORKSPACE/.github/scripts/messages.py" ] || { echo "::error::messages.py is missing; rerun \`npx project-auto-wizard --mode full --force\`"; exit 1; }
72
73
  m() { (cd "$GITHUB_WORKSPACE" && python3 .github/scripts/messages.py get "$@"); }
73
74
  cat > .env << 'EOF'
74
75
  ${{ secrets.ENV_FILE }}
@@ -82,6 +83,7 @@ jobs:
82
83
 
83
84
  - name: Install dependencies
84
85
  run: |
86
+ [ -f "$GITHUB_WORKSPACE/.github/scripts/messages.py" ] || { echo "::error::messages.py is missing; rerun \`npx project-auto-wizard --mode full --force\`"; exit 1; }
85
87
  m() { (cd "$GITHUB_WORKSPACE" && python3 .github/scripts/messages.py get "$@"); }
86
88
  python -m pip install --upgrade pip
87
89
  if [ -f requirements.txt ]; then
@@ -97,6 +99,7 @@ jobs:
97
99
  # Projects without tests are skipped rather than failed
98
100
  - name: Run tests (pytest)
99
101
  run: |
102
+ [ -f "$GITHUB_WORKSPACE/.github/scripts/messages.py" ] || { echo "::error::messages.py is missing; rerun \`npx project-auto-wizard --mode full --force\`"; exit 1; }
100
103
  m() { (cd "$GITHUB_WORKSPACE" && python3 .github/scripts/messages.py get "$@"); }
101
104
  if [ -d tests ] || [ -d test ] || [ -n "$(find . \( -path ./.venv -o -path ./venv -o -path ./node_modules -o -path ./.git \) -prune -o \( -name 'test_*.py' -o -name '*_test.py' \) -type f -print -quit)" ]; then
102
105
  python -m pytest --version > /dev/null 2>&1 || pip install pytest
@@ -117,6 +120,7 @@ jobs:
117
120
  - name: Check for Dockerfile
118
121
  id: dockerfile
119
122
  run: |
123
+ [ -f "$GITHUB_WORKSPACE/.github/scripts/messages.py" ] || { echo "::error::messages.py is missing; rerun \`npx project-auto-wizard --mode full --force\`"; exit 1; }
120
124
  m() { (cd "$GITHUB_WORKSPACE" && python3 .github/scripts/messages.py get "$@"); }
121
125
  if [ -f Dockerfile ]; then
122
126
  echo "exists=true" >> "$GITHUB_OUTPUT"
@@ -127,11 +131,11 @@ jobs:
127
131
 
128
132
  - name: Set up Docker Buildx
129
133
  if: steps.dockerfile.outputs.exists == 'true'
130
- uses: docker/setup-buildx-action@v3
134
+ uses: docker/setup-buildx-action@v4
131
135
 
132
136
  - name: Verify Docker image build
133
137
  if: steps.dockerfile.outputs.exists == 'true'
134
- uses: docker/build-push-action@v5
138
+ uses: docker/build-push-action@v7
135
139
  with:
136
140
  context: ${{ env.PROJECT_PATH }}
137
141
  file: ${{ env.PROJECT_PATH }}/Dockerfile
@@ -141,15 +145,18 @@ jobs:
141
145
  cache-to: type=gha,mode=max
142
146
 
143
147
  - name: Build verification complete
148
+ env:
149
+ PAW_REF_NAME: ${{ github.ref_name }}
144
150
  run: |
151
+ [ -f "$GITHUB_WORKSPACE/.github/scripts/messages.py" ] || { echo "::error::messages.py is missing; rerun \`npx project-auto-wizard --mode full --force\`"; exit 1; }
145
152
  m() { (cd "$GITHUB_WORKSPACE" && python3 .github/scripts/messages.py get "$@"); }
146
153
  m cibuild.python_done
147
154
  echo ""
148
155
  m cibuild.info_title
149
156
  m cibuild.info_project project="${{ env.PROJECT_NAME }}"
150
- m cibuild.info_branch branch="${{ github.ref_name }}"
157
+ m cibuild.info_branch branch="$PAW_REF_NAME"
151
158
  m cibuild.info_commit sha="${{ github.sha }}"
152
- m cibuild.info_time time="$(date '+%Y-%m-%d %H:%M:%S')"
159
+ m cibuild.info_time time="$(date -u '+%Y-%m-%d %H:%M:%S UTC')"
153
160
 
154
161
  # CI Gate: the single job to register as a required check
155
162
  ci-gate:
@@ -171,6 +178,7 @@ jobs:
171
178
  env:
172
179
  RESULTS: ${{ toJSON(needs.*.result) }}
173
180
  run: |
181
+ [ -f "$GITHUB_WORKSPACE/.github/scripts/messages.py" ] || { echo "::error::messages.py is missing; rerun \`npx project-auto-wizard --mode full --force\`"; exit 1; }
174
182
  m() { (cd "$GITHUB_WORKSPACE" && python3 .github/scripts/messages.py get "$@"); }
175
183
  m cibuild.gate_results results="$RESULTS"
176
184
  if echo "$RESULTS" | grep -Eq '"(failure|cancelled)"'; then