project-auto-wizard 0.15.0 → 0.16.0
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.ja.md +1 -1
- package/README.ko.md +1 -1
- package/README.md +2 -2
- package/README.zh-CN.md +1 -1
- package/package.json +1 -1
- package/payload/config/breaking-changes.json +31 -5
- package/payload/config/wizard-prompts.yml +0 -4
- package/payload/scripts/messages.py +162 -26
- package/payload/scripts/version_manager.py +69 -40
- package/payload/version.yml.template +6 -2
- package/payload/workflows/common/PROJECT-COMMON-AI-PR-SUMMARY.yaml +3 -0
- package/payload/workflows/common/PROJECT-COMMON-AUTO-CHANGELOG-CONTROL.yaml +64 -1
- package/payload/workflows/common/PROJECT-COMMON-README-VERSION-UPDATE.yaml +61 -12
- package/payload/workflows/common/PROJECT-COMMON-RELEASE-PUBLISH.yaml +46 -10
- package/payload/workflows/common/PROJECT-COMMON-VERSION-CONTROL.yaml +40 -11
- package/payload/workflows/flutter/PROJECT-FLUTTER-ANDROID-FIREBASE-CICD.yaml +24 -8
- package/payload/workflows/flutter/PROJECT-FLUTTER-ANDROID-PLAYSTORE-CICD.yaml +29 -10
- package/payload/workflows/flutter/PROJECT-FLUTTER-ANDROID-SELFHOSTED-CICD.yaml +57 -23
- package/payload/workflows/flutter/PROJECT-FLUTTER-ANDROID-TEST-APK.yaml +155 -72
- package/payload/workflows/flutter/PROJECT-FLUTTER-APP-BUILD-TRIGGER.yaml +49 -20
- package/payload/workflows/flutter/PROJECT-FLUTTER-CI.yaml +162 -62
- package/payload/workflows/flutter/PROJECT-FLUTTER-IOS-TEST-TESTFLIGHT.yaml +184 -87
- package/payload/workflows/flutter/PROJECT-FLUTTER-IOS-TESTFLIGHT.yaml +38 -15
- package/payload/workflows/go/PROJECT-GO-CI.yaml +14 -5
- package/payload/workflows/go/PROJECT-GO-PR-PREVIEW.yaml +375 -120
- package/payload/workflows/go/PROJECT-GO-SIMPLE-CICD.yaml +9 -4
- package/payload/workflows/python/PROJECT-PYTHON-CI.yaml +12 -4
- package/payload/workflows/python/PROJECT-PYTHON-PR-PREVIEW.yaml +375 -120
- package/payload/workflows/python/PROJECT-PYTHON-SIMPLE-CICD.yaml +9 -4
- package/payload/workflows/react/PROJECT-REACT-CI.yaml +38 -9
- package/payload/workflows/react/PROJECT-REACT-CICD.yaml +19 -5
- package/payload/workflows/spring/PROJECT-SPRING-CI.yml +71 -35
- package/payload/workflows/spring/server-deploy/PROJECT-SPRING-NONSTOP-NGINX-CICD.yaml +9 -6
- package/payload/workflows/spring/server-deploy/PROJECT-SPRING-NONSTOP-TRAEFIK-CICD.yaml +7 -4
- package/payload/workflows/spring/server-deploy/PROJECT-SPRING-PR-PREVIEW.yaml +425 -144
- package/payload/workflows/spring/server-deploy/PROJECT-SPRING-SIMPLE-CICD.yaml +7 -4
- package/src/cli/args.js +32 -22
- package/src/commands/doctor.js +20 -0
- package/src/commands/dry-run.js +9 -1
- package/src/commands/full.js +9 -4
- package/src/commands/interactive.js +29 -30
- package/src/commands/status.js +19 -5
- package/src/context.js +4 -2
- package/src/core/copy/simple.js +31 -0
- package/src/core/copy/workflows.js +2 -2
- package/src/core/deploy-style.js +1 -1
- package/src/core/detect.js +3 -2
- package/src/core/options.js +88 -0
- package/src/core/release-options.js +6 -23
- package/src/core/types.js +15 -8
- package/src/core/version-yml.js +68 -26
- package/src/i18n/catalog/en/cli.js +3 -1
- package/src/i18n/catalog/en/commands.js +15 -0
- package/src/i18n/catalog/en/core2.js +3 -0
- package/src/i18n/catalog/en/ui.js +1 -0
- package/src/i18n/catalog/ko/cli.js +3 -1
- package/src/i18n/catalog/ko/commands.js +15 -0
- package/src/i18n/catalog/ko/core2.js +3 -0
- package/src/i18n/catalog/ko/ui.js +1 -0
- package/src/index.js +7 -3
- package/src/ui/env-plan.js +1 -1
- package/src/ui/prompts.js +9 -5
- package/src/ui/status-cards.js +2 -2
- package/payload/workflows/next/PROJECT-NEXT-CI.yaml +0 -241
- 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@
|
|
147
|
+
uses: docker/setup-buildx-action@v4
|
|
145
148
|
|
|
146
149
|
- name: Log in to DockerHub
|
|
147
|
-
uses: docker/login-action@
|
|
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@
|
|
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@
|
|
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@
|
|
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="$
|
|
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
|