project-auto-wizard 0.16.1 → 0.16.2
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/scripts/messages.py +44 -6
- package/payload/scripts/version_manager.py +76 -3
- package/payload/version.yml.template +3 -2
- package/payload/workflows/common/PROJECT-COMMON-AI-PR-SUMMARY.yaml +7 -7
- package/payload/workflows/common/PROJECT-COMMON-AUTO-CHANGELOG-CONTROL.yaml +111 -57
- package/payload/workflows/common/PROJECT-COMMON-README-VERSION-UPDATE.yaml +10 -1
- package/payload/workflows/common/PROJECT-COMMON-RELEASE-PUBLISH.yaml +13 -3
- package/payload/workflows/common/PROJECT-COMMON-VERSION-CONTROL.yaml +10 -1
- package/payload/workflows/flutter/PROJECT-FLUTTER-ANDROID-PLAYSTORE-CICD.yaml +2 -2
- package/payload/workflows/flutter/PROJECT-FLUTTER-ANDROID-TEST-APK.yaml +10 -10
- package/payload/workflows/flutter/PROJECT-FLUTTER-APP-BUILD-TRIGGER.yaml +10 -10
- package/payload/workflows/flutter/PROJECT-FLUTTER-CI.yaml +14 -12
- package/payload/workflows/flutter/PROJECT-FLUTTER-IOS-TEST-TESTFLIGHT.yaml +35 -18
- package/payload/workflows/go/PROJECT-GO-CI.yaml +3 -1
- package/payload/workflows/go/PROJECT-GO-PR-PREVIEW.yaml +81 -61
- package/payload/workflows/python/PROJECT-PYTHON-CI.yaml +3 -1
- package/payload/workflows/python/PROJECT-PYTHON-PR-PREVIEW.yaml +81 -61
- package/payload/workflows/react/PROJECT-REACT-CI.yaml +3 -2
- package/payload/workflows/spring/PROJECT-SPRING-CI.yml +4 -4
- package/payload/workflows/spring/server-deploy/PROJECT-SPRING-PR-PREVIEW.yaml +86 -68
- package/src/commands/doctor.js +14 -24
- package/src/commands/dry-run.js +4 -3
- package/src/commands/full.js +6 -6
- package/src/commands/interactive.js +5 -1
- package/src/commands/status.js +9 -2
- package/src/core/copy/gitignore.js +3 -3
- package/src/core/copy/readme.js +11 -10
- package/src/core/detect-fs.js +9 -4
- package/src/core/options.js +36 -0
- package/src/core/version-yml.js +37 -13
- package/src/i18n/catalog/en/cli.js +1 -0
- package/src/i18n/catalog/en/commands.js +4 -1
- package/src/i18n/catalog/en/core.js +1 -0
- package/src/i18n/catalog/en/core2.js +2 -0
- package/src/i18n/catalog/en/ui.js +3 -0
- package/src/i18n/catalog/ko/cli.js +1 -0
- package/src/i18n/catalog/ko/commands.js +4 -1
- package/src/i18n/catalog/ko/core.js +1 -0
- package/src/i18n/catalog/ko/core2.js +2 -0
- package/src/i18n/catalog/ko/ui.js +3 -0
- package/src/index.js +19 -7
- package/src/ui/summary.js +15 -6
|
@@ -151,7 +151,7 @@ jobs:
|
|
|
151
151
|
- name: Load messages
|
|
152
152
|
run: |
|
|
153
153
|
[ -f "$GITHUB_WORKSPACE/.github/scripts/messages.py" ] || { echo "::error::messages.py is missing; rerun \`npx project-auto-wizard --mode full --force\`"; exit 1; }
|
|
154
|
-
|
|
154
|
+
(cd "$GITHUB_WORKSPACE" && python3 .github/scripts/messages.py dump flutter_a.ci_) > "$RUNNER_TEMP/paw-msg.json"
|
|
155
155
|
|
|
156
156
|
# Pass the settings on as outputs
|
|
157
157
|
- name: Pass settings
|
|
@@ -186,6 +186,8 @@ jobs:
|
|
|
186
186
|
PAW_EVENT_NAME: ${{ github.event_name }}
|
|
187
187
|
PAW_HEAD_REF: ${{ github.head_ref }}
|
|
188
188
|
PAW_REF_NAME: ${{ github.ref_name }}
|
|
189
|
+
# On a PR, github.sha is the temporary merge commit; show the PR head commit instead
|
|
190
|
+
PAW_COMMIT_SHA: ${{ github.event.pull_request.head.sha || github.sha }}
|
|
189
191
|
run: |
|
|
190
192
|
[ -f "$GITHUB_WORKSPACE/.github/scripts/messages.py" ] || { echo "::error::messages.py is missing; rerun \`npx project-auto-wizard --mode full --force\`"; exit 1; }
|
|
191
193
|
m() { (cd "$GITHUB_WORKSPACE" && python3 .github/scripts/messages.py get "$@"); }
|
|
@@ -194,7 +196,7 @@ jobs:
|
|
|
194
196
|
else
|
|
195
197
|
BRANCH_NAME="$PAW_REF_NAME"
|
|
196
198
|
fi
|
|
197
|
-
COMMIT_HASH=$(echo "$
|
|
199
|
+
COMMIT_HASH=$(echo "$PAW_COMMIT_SHA" | cut -c1-7)
|
|
198
200
|
|
|
199
201
|
echo "branch_name=$BRANCH_NAME" >> $GITHUB_OUTPUT
|
|
200
202
|
echo "commit_hash=$COMMIT_HASH" >> $GITHUB_OUTPUT
|
|
@@ -217,7 +219,7 @@ jobs:
|
|
|
217
219
|
with:
|
|
218
220
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
219
221
|
script: |
|
|
220
|
-
const M = JSON.parse(process.env.
|
|
222
|
+
const M = JSON.parse(require('fs').readFileSync(`${process.env.RUNNER_TEMP}/paw-msg.json`, 'utf8'));
|
|
221
223
|
const m = (k, p = {}) => M[k].replace(/\{(\w+)\}/g, (s, n) => (n in p ? p[n] : s));
|
|
222
224
|
const prNumber = context.payload.pull_request.number;
|
|
223
225
|
const branchName = process.env.PAW_IN_STEPS_INFO_OUTPUTS_BRANCH_NAME;
|
|
@@ -315,7 +317,7 @@ jobs:
|
|
|
315
317
|
id: load_messages
|
|
316
318
|
run: |
|
|
317
319
|
[ -f "$GITHUB_WORKSPACE/.github/scripts/messages.py" ] || { echo "::error::messages.py is missing; rerun \`npx project-auto-wizard --mode full --force\`"; exit 1; }
|
|
318
|
-
|
|
320
|
+
(cd "$GITHUB_WORKSPACE" && python3 .github/scripts/messages.py dump flutter_a.ci_) > "$RUNNER_TEMP/paw-msg.json"
|
|
319
321
|
|
|
320
322
|
# Prepare env vars - a .env file when ENV_MODE=dotenv, a temp file outside the project (--dart-define-from-file) for dart-define
|
|
321
323
|
- name: Prepare env file
|
|
@@ -407,7 +409,7 @@ jobs:
|
|
|
407
409
|
PAW_IN_STEPS_TEST_OUTPUTS_SECONDS: ${{ steps.test.outputs.seconds }}
|
|
408
410
|
with:
|
|
409
411
|
script: |
|
|
410
|
-
const M = JSON.parse(process.env.
|
|
412
|
+
const M = JSON.parse(require('fs').readFileSync(`${process.env.RUNNER_TEMP}/paw-msg.json`, 'utf8'));
|
|
411
413
|
const m = (k, p = {}) => M[k].replace(/\{(\w+)\}/g, (s, n) => (n in p ? p[n] : s));
|
|
412
414
|
const analyzeStart = parseInt(process.env.PAW_IN_STEPS_ANALYZE_START_OUTPUTS_TIME);
|
|
413
415
|
const now = Date.now();
|
|
@@ -467,7 +469,7 @@ jobs:
|
|
|
467
469
|
id: load_messages
|
|
468
470
|
run: |
|
|
469
471
|
[ -f "$GITHUB_WORKSPACE/.github/scripts/messages.py" ] || { echo "::error::messages.py is missing; rerun \`npx project-auto-wizard --mode full --force\`"; exit 1; }
|
|
470
|
-
|
|
472
|
+
(cd "$GITHUB_WORKSPACE" && python3 .github/scripts/messages.py dump flutter_a.ci_) > "$RUNNER_TEMP/paw-msg.json"
|
|
471
473
|
|
|
472
474
|
# Prepare env vars - a .env file when ENV_MODE=dotenv, a temp file outside the project (--dart-define-from-file) for dart-define
|
|
473
475
|
- name: Prepare env file
|
|
@@ -573,7 +575,7 @@ jobs:
|
|
|
573
575
|
PAW_IN_STEPS_BUILD_START_OUTPUTS_TIME: ${{ steps.build_start.outputs.time }}
|
|
574
576
|
with:
|
|
575
577
|
script: |
|
|
576
|
-
const M = JSON.parse(process.env.
|
|
578
|
+
const M = JSON.parse(require('fs').readFileSync(`${process.env.RUNNER_TEMP}/paw-msg.json`, 'utf8'));
|
|
577
579
|
const m = (k, p = {}) => M[k].replace(/\{(\w+)\}/g, (s, n) => (n in p ? p[n] : s));
|
|
578
580
|
const buildStart = parseInt(process.env.PAW_IN_STEPS_BUILD_START_OUTPUTS_TIME);
|
|
579
581
|
const now = Date.now();
|
|
@@ -620,7 +622,7 @@ jobs:
|
|
|
620
622
|
id: load_messages
|
|
621
623
|
run: |
|
|
622
624
|
[ -f "$GITHUB_WORKSPACE/.github/scripts/messages.py" ] || { echo "::error::messages.py is missing; rerun \`npx project-auto-wizard --mode full --force\`"; exit 1; }
|
|
623
|
-
|
|
625
|
+
(cd "$GITHUB_WORKSPACE" && python3 .github/scripts/messages.py dump flutter_a.ci_) > "$RUNNER_TEMP/paw-msg.json"
|
|
624
626
|
|
|
625
627
|
- name: Select Xcode version
|
|
626
628
|
run: sudo xcode-select -s /Applications/Xcode_${{ env.XCODE_VERSION }}.app/Contents/Developer
|
|
@@ -710,7 +712,7 @@ jobs:
|
|
|
710
712
|
if [ -f ios/Podfile ]; then
|
|
711
713
|
gem install cocoapods
|
|
712
714
|
(cd ios && (pod install --repo-update || pod install))
|
|
713
|
-
|
|
715
|
+
m flutter_a.ci_pods_installed
|
|
714
716
|
else
|
|
715
717
|
m flutter_a.ci_podfile_missing
|
|
716
718
|
fi
|
|
@@ -733,7 +735,7 @@ jobs:
|
|
|
733
735
|
PAW_IN_STEPS_BUILD_START_OUTPUTS_TIME: ${{ steps.build_start.outputs.time }}
|
|
734
736
|
with:
|
|
735
737
|
script: |
|
|
736
|
-
const M = JSON.parse(process.env.
|
|
738
|
+
const M = JSON.parse(require('fs').readFileSync(`${process.env.RUNNER_TEMP}/paw-msg.json`, 'utf8'));
|
|
737
739
|
const m = (k, p = {}) => M[k].replace(/\{(\w+)\}/g, (s, n) => (n in p ? p[n] : s));
|
|
738
740
|
const buildStart = parseInt(process.env.PAW_IN_STEPS_BUILD_START_OUTPUTS_TIME);
|
|
739
741
|
const now = Date.now();
|
|
@@ -767,7 +769,7 @@ jobs:
|
|
|
767
769
|
- name: Load messages
|
|
768
770
|
run: |
|
|
769
771
|
[ -f "$GITHUB_WORKSPACE/.github/scripts/messages.py" ] || { echo "::error::messages.py is missing; rerun \`npx project-auto-wizard --mode full --force\`"; exit 1; }
|
|
770
|
-
|
|
772
|
+
(cd "$GITHUB_WORKSPACE" && python3 .github/scripts/messages.py dump flutter_a.ci_) > "$RUNNER_TEMP/paw-msg.json"
|
|
771
773
|
|
|
772
774
|
- name: Update final result comment
|
|
773
775
|
uses: actions/github-script@v9
|
|
@@ -791,7 +793,7 @@ jobs:
|
|
|
791
793
|
with:
|
|
792
794
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
793
795
|
script: |
|
|
794
|
-
const M = JSON.parse(process.env.
|
|
796
|
+
const M = JSON.parse(require('fs').readFileSync(`${process.env.RUNNER_TEMP}/paw-msg.json`, 'utf8'));
|
|
795
797
|
const m = (k, p = {}) => M[k].replace(/\{(\w+)\}/g, (s, n) => (n in p ? p[n] : s));
|
|
796
798
|
const commentId = parseInt(process.env.PAW_IN_NEEDS_PREPARE_OUTPUTS_COMMENT_ID);
|
|
797
799
|
const startTime = parseInt(process.env.PAW_IN_NEEDS_PREPARE_OUTPUTS_START_TIME);
|
|
@@ -100,7 +100,7 @@ jobs:
|
|
|
100
100
|
rm -rf .paw-msg
|
|
101
101
|
echo "PROJECT_AUTO_WIZARD_LANG=$LANG_CODE" >> "$GITHUB_ENV"
|
|
102
102
|
echo "PAW_MESSAGES_PY=$RUNNER_TEMP/paw_messages.py" >> "$GITHUB_ENV"
|
|
103
|
-
|
|
103
|
+
PROJECT_AUTO_WIZARD_LANG=$LANG_CODE python3 "$RUNNER_TEMP/paw_messages.py" dump ios_test_tf. > "$RUNNER_TEMP/paw-msg.json"
|
|
104
104
|
|
|
105
105
|
- name: Verify the branch exists up front
|
|
106
106
|
id: verify_branch
|
|
@@ -112,7 +112,7 @@ jobs:
|
|
|
112
112
|
with:
|
|
113
113
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
114
114
|
script: |
|
|
115
|
-
const M = JSON.parse(process.env.
|
|
115
|
+
const M = JSON.parse(require('fs').readFileSync(`${process.env.RUNNER_TEMP}/paw-msg.json`, 'utf8'));
|
|
116
116
|
const msg = (k, p = {}) => M[k].replace(/\{(\w+)\}/g, (s, n) => (n in p ? p[n] : s));
|
|
117
117
|
const branchName = process.env.PAW_IN_GITHUB_EVENT_CLIENT_PAYLOAD_BRANCH_NAME;
|
|
118
118
|
const prNumber = process.env.PAW_IN_GITHUB_EVENT_CLIENT_PAYLOAD_PR_NUMBER;
|
|
@@ -175,7 +175,7 @@ jobs:
|
|
|
175
175
|
with:
|
|
176
176
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
177
177
|
script: |
|
|
178
|
-
const M = JSON.parse(process.env.
|
|
178
|
+
const M = JSON.parse(require('fs').readFileSync(`${process.env.RUNNER_TEMP}/paw-msg.json`, 'utf8'));
|
|
179
179
|
const msg = (k, p = {}) => M[k].replace(/\{(\w+)\}/g, (s, n) => (n in p ? p[n] : s));
|
|
180
180
|
const row = (name, status, elapsed = '-') => `| ${msg('ios_test_tf.step_' + name)} | ${msg('ios_test_tf.st_' + status)} | ${elapsed} |`;
|
|
181
181
|
const prNumber = parseInt(process.env.PAW_IN_GITHUB_EVENT_CLIENT_PAYLOAD_PR_NUMBER);
|
|
@@ -260,7 +260,7 @@ jobs:
|
|
|
260
260
|
rm -rf .paw-msg
|
|
261
261
|
echo "PROJECT_AUTO_WIZARD_LANG=$LANG_CODE" >> "$GITHUB_ENV"
|
|
262
262
|
echo "PAW_MESSAGES_PY=$RUNNER_TEMP/paw_messages.py" >> "$GITHUB_ENV"
|
|
263
|
-
|
|
263
|
+
PROJECT_AUTO_WIZARD_LANG=$LANG_CODE python3 "$RUNNER_TEMP/paw_messages.py" dump ios_test_tf. > "$RUNNER_TEMP/paw-msg.json"
|
|
264
264
|
|
|
265
265
|
- name: Checkout repository
|
|
266
266
|
uses: actions/checkout@v7
|
|
@@ -275,6 +275,7 @@ jobs:
|
|
|
275
275
|
|
|
276
276
|
# Report every missing setting up front, before importing certificates or building — otherwise the macOS runner builds for a long time and fails at an unrelated step
|
|
277
277
|
- name: Validate deploy settings
|
|
278
|
+
id: validate
|
|
278
279
|
env:
|
|
279
280
|
APPLE_CERTIFICATE_BASE64: ${{ secrets.APPLE_CERTIFICATE_BASE64 }}
|
|
280
281
|
APPLE_PROVISIONING_PROFILE_BASE64: ${{ secrets.APPLE_PROVISIONING_PROFILE_BASE64 }}
|
|
@@ -286,27 +287,37 @@ jobs:
|
|
|
286
287
|
m() { python3 "$PAW_MESSAGES_PY" get "$@"; }
|
|
287
288
|
FAILED=0
|
|
288
289
|
MISSING=""
|
|
290
|
+
ITEMS=""
|
|
289
291
|
for name in APPLE_CERTIFICATE_BASE64 APPLE_PROVISIONING_PROFILE_BASE64 IOS_PROVISIONING_PROFILE_NAME \
|
|
290
292
|
APP_STORE_CONNECT_API_KEY_ID APP_STORE_CONNECT_ISSUER_ID APP_STORE_CONNECT_API_KEY_BASE64; do
|
|
291
293
|
[ -n "${!name}" ] || MISSING="$MISSING $name"
|
|
292
294
|
done
|
|
293
295
|
if [ -n "$MISSING" ]; then
|
|
294
296
|
echo "::error::$(m ios_test_tf.secrets_missing missing="$MISSING")"
|
|
297
|
+
ITEMS="${MISSING# }"
|
|
298
|
+
ITEMS="${ITEMS// /, }"
|
|
295
299
|
FAILED=1
|
|
296
300
|
fi
|
|
297
301
|
if [ ! -f ios/ExportOptions.plist ]; then
|
|
298
302
|
echo "::error::$(m ios_test_tf.export_options_missing)"
|
|
303
|
+
ITEMS="${ITEMS:+$ITEMS, }ios/ExportOptions.plist"
|
|
299
304
|
FAILED=1
|
|
300
305
|
elif grep -Eq '__[A-Z][A-Z0-9_]*__' ios/ExportOptions.plist; then
|
|
301
306
|
echo "::error::$(m ios_test_tf.export_options_placeholders)"
|
|
302
307
|
grep -En '__[A-Z][A-Z0-9_]*__' ios/ExportOptions.plist
|
|
308
|
+
ITEMS="${ITEMS:+$ITEMS, }ios/ExportOptions.plist"
|
|
303
309
|
FAILED=1
|
|
304
310
|
fi
|
|
305
311
|
if [ ! -f ios/fastlane/Fastfile ]; then
|
|
306
312
|
echo "::error::$(m ios_test_tf.fastfile_missing_error)"
|
|
313
|
+
ITEMS="${ITEMS:+$ITEMS, }ios/fastlane/Fastfile"
|
|
307
314
|
FAILED=1
|
|
308
315
|
fi
|
|
309
|
-
[ "$FAILED" -
|
|
316
|
+
if [ "$FAILED" -ne 0 ]; then
|
|
317
|
+
# The progress comment names what blocked the build and deploy steps
|
|
318
|
+
echo "missing=$ITEMS" >> "$GITHUB_OUTPUT"
|
|
319
|
+
exit 1
|
|
320
|
+
fi
|
|
310
321
|
m ios_test_tf.preflight_ok
|
|
311
322
|
|
|
312
323
|
- name: Select Xcode version
|
|
@@ -480,14 +491,20 @@ jobs:
|
|
|
480
491
|
PAW_IN_GITHUB_RUN_ID: ${{ github.run_id }}
|
|
481
492
|
PAW_IN_NEEDS_NOTIFY_START_OUTPUTS_COMMENT_ID: ${{ needs.notify-start.outputs.comment_id }}
|
|
482
493
|
PAW_IN_NEEDS_NOTIFY_START_OUTPUTS_START_TIME: ${{ needs.notify-start.outputs.start_time }}
|
|
494
|
+
PAW_IN_STEPS_VALIDATE_OUTCOME: ${{ steps.validate.outcome }}
|
|
495
|
+
PAW_IN_STEPS_VALIDATE_OUTPUTS_MISSING: ${{ steps.validate.outputs.missing }}
|
|
483
496
|
with:
|
|
484
497
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
485
498
|
script: |
|
|
486
|
-
const M = JSON.parse(process.env.
|
|
499
|
+
const M = JSON.parse(require('fs').readFileSync(`${process.env.RUNNER_TEMP}/paw-msg.json`, 'utf8'));
|
|
487
500
|
const msg = (k, p = {}) => M[k].replace(/\{(\w+)\}/g, (s, n) => (n in p ? p[n] : s));
|
|
488
|
-
const row = (name, status, elapsed = '-') => `| ${msg('ios_test_tf.step_' + name)} | ${msg('ios_test_tf.st_' + status)} | ${elapsed} |`;
|
|
501
|
+
const row = (name, status, elapsed = '-', p = {}) => `| ${msg('ios_test_tf.step_' + name)} | ${msg('ios_test_tf.st_' + status, p)} | ${elapsed} |`;
|
|
489
502
|
const commentId = parseInt(process.env.PAW_IN_NEEDS_NOTIFY_START_OUTPUTS_COMMENT_ID);
|
|
490
503
|
const startTime = parseInt(process.env.PAW_IN_NEEDS_NOTIFY_START_OUTPUTS_START_TIME);
|
|
504
|
+
// When the deploy-settings check failed, later steps did not run because of it: say what was missing
|
|
505
|
+
const blocked = process.env.PAW_IN_STEPS_VALIDATE_OUTCOME === 'failure';
|
|
506
|
+
const notRun = blocked ? 'precheck_blocked' : 'not_run';
|
|
507
|
+
const notRunParams = { missing: process.env.PAW_IN_STEPS_VALIDATE_OUTPUTS_MISSING || '-' };
|
|
491
508
|
const branchName = process.env.PAW_IN_GITHUB_EVENT_CLIENT_PAYLOAD_BRANCH_NAME;
|
|
492
509
|
const buildNumber = process.env.PAW_IN_GITHUB_EVENT_CLIENT_PAYLOAD_BUILD_NUMBER;
|
|
493
510
|
const runId = process.env.PAW_IN_GITHUB_RUN_ID;
|
|
@@ -505,15 +522,15 @@ jobs:
|
|
|
505
522
|
msg('ios_test_tf.table_header'),
|
|
506
523
|
'|------|------|----------|',
|
|
507
524
|
row('prepare', 'failed', duration),
|
|
508
|
-
row('build', '
|
|
509
|
-
row('deploy', '
|
|
525
|
+
row('build', notRun, '-', notRunParams),
|
|
526
|
+
row('deploy', notRun, '-', notRunParams),
|
|
510
527
|
'',
|
|
511
528
|
msg('ios_test_tf.kv_head'),
|
|
512
529
|
'|------|-----|',
|
|
513
530
|
msg('ios_test_tf.row_build_number', { build: buildNumber }),
|
|
514
531
|
msg('ios_test_tf.row_branch', { branch: branchName }),
|
|
515
532
|
'',
|
|
516
|
-
msg('ios_test_tf.prepare_error'),
|
|
533
|
+
blocked ? msg('ios_test_tf.prepare_precheck_error', notRunParams) : msg('ios_test_tf.prepare_error'),
|
|
517
534
|
'',
|
|
518
535
|
msg('ios_test_tf.run_log_check_link', { url: runUrl })
|
|
519
536
|
].join('\n');
|
|
@@ -566,7 +583,7 @@ jobs:
|
|
|
566
583
|
rm -rf .paw-msg
|
|
567
584
|
echo "PROJECT_AUTO_WIZARD_LANG=$LANG_CODE" >> "$GITHUB_ENV"
|
|
568
585
|
echo "PAW_MESSAGES_PY=$RUNNER_TEMP/paw_messages.py" >> "$GITHUB_ENV"
|
|
569
|
-
|
|
586
|
+
PROJECT_AUTO_WIZARD_LANG=$LANG_CODE python3 "$RUNNER_TEMP/paw_messages.py" dump ios_test_tf. > "$RUNNER_TEMP/paw-msg.json"
|
|
570
587
|
|
|
571
588
|
# Progress update - prepare done (must be updated when the build job starts so the prepare time is shown accurately)
|
|
572
589
|
- name: Progress update - prepare done
|
|
@@ -583,7 +600,7 @@ jobs:
|
|
|
583
600
|
with:
|
|
584
601
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
585
602
|
script: |
|
|
586
|
-
const M = JSON.parse(process.env.
|
|
603
|
+
const M = JSON.parse(require('fs').readFileSync(`${process.env.RUNNER_TEMP}/paw-msg.json`, 'utf8'));
|
|
587
604
|
const msg = (k, p = {}) => M[k].replace(/\{(\w+)\}/g, (s, n) => (n in p ? p[n] : s));
|
|
588
605
|
const row = (name, status, elapsed = '-') => `| ${msg('ios_test_tf.step_' + name)} | ${msg('ios_test_tf.st_' + status)} | ${elapsed} |`;
|
|
589
606
|
const commentId = parseInt(process.env.PAW_IN_NEEDS_NOTIFY_START_OUTPUTS_COMMENT_ID);
|
|
@@ -825,7 +842,7 @@ jobs:
|
|
|
825
842
|
with:
|
|
826
843
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
827
844
|
script: |
|
|
828
|
-
const M = JSON.parse(process.env.
|
|
845
|
+
const M = JSON.parse(require('fs').readFileSync(`${process.env.RUNNER_TEMP}/paw-msg.json`, 'utf8'));
|
|
829
846
|
const msg = (k, p = {}) => M[k].replace(/\{(\w+)\}/g, (s, n) => (n in p ? p[n] : s));
|
|
830
847
|
const row = (name, status, elapsed = '-') => `| ${msg('ios_test_tf.step_' + name)} | ${msg('ios_test_tf.st_' + status)} | ${elapsed} |`;
|
|
831
848
|
const commentId = parseInt(process.env.PAW_IN_NEEDS_NOTIFY_START_OUTPUTS_COMMENT_ID);
|
|
@@ -892,7 +909,7 @@ jobs:
|
|
|
892
909
|
with:
|
|
893
910
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
894
911
|
script: |
|
|
895
|
-
const M = JSON.parse(process.env.
|
|
912
|
+
const M = JSON.parse(require('fs').readFileSync(`${process.env.RUNNER_TEMP}/paw-msg.json`, 'utf8'));
|
|
896
913
|
const msg = (k, p = {}) => M[k].replace(/\{(\w+)\}/g, (s, n) => (n in p ? p[n] : s));
|
|
897
914
|
const row = (name, status, elapsed = '-') => `| ${msg('ios_test_tf.step_' + name)} | ${msg('ios_test_tf.st_' + status)} | ${elapsed} |`;
|
|
898
915
|
const commentId = parseInt(process.env.PAW_IN_NEEDS_NOTIFY_START_OUTPUTS_COMMENT_ID);
|
|
@@ -924,7 +941,7 @@ jobs:
|
|
|
924
941
|
'|------|------|----------|',
|
|
925
942
|
row('prepare', 'done', step1Elapsed || '-'),
|
|
926
943
|
row('build', 'failed', step2ElapsedStr),
|
|
927
|
-
row('deploy', '
|
|
944
|
+
row('deploy', 'not_run'),
|
|
928
945
|
'',
|
|
929
946
|
msg('ios_test_tf.kv_head'),
|
|
930
947
|
'|------|-----|',
|
|
@@ -979,7 +996,7 @@ jobs:
|
|
|
979
996
|
rm -rf .paw-msg
|
|
980
997
|
echo "PROJECT_AUTO_WIZARD_LANG=$LANG_CODE" >> "$GITHUB_ENV"
|
|
981
998
|
echo "PAW_MESSAGES_PY=$RUNNER_TEMP/paw_messages.py" >> "$GITHUB_ENV"
|
|
982
|
-
|
|
999
|
+
PROJECT_AUTO_WIZARD_LANG=$LANG_CODE python3 "$RUNNER_TEMP/paw_messages.py" dump ios_test_tf. > "$RUNNER_TEMP/paw-msg.json"
|
|
983
1000
|
|
|
984
1001
|
- name: Checkout repository
|
|
985
1002
|
uses: actions/checkout@v7
|
|
@@ -1112,7 +1129,7 @@ jobs:
|
|
|
1112
1129
|
with:
|
|
1113
1130
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
1114
1131
|
script: |
|
|
1115
|
-
const M = JSON.parse(process.env.
|
|
1132
|
+
const M = JSON.parse(require('fs').readFileSync(`${process.env.RUNNER_TEMP}/paw-msg.json`, 'utf8'));
|
|
1116
1133
|
const msg = (k, p = {}) => M[k].replace(/\{(\w+)\}/g, (s, n) => (n in p ? p[n] : s));
|
|
1117
1134
|
const row = (name, status, elapsed = '-') => `| ${msg('ios_test_tf.step_' + name)} | ${msg('ios_test_tf.st_' + status)} | ${elapsed} |`;
|
|
1118
1135
|
const commentId = parseInt(process.env.PAW_IN_NEEDS_NOTIFY_START_OUTPUTS_COMMENT_ID);
|
|
@@ -1188,7 +1205,7 @@ jobs:
|
|
|
1188
1205
|
with:
|
|
1189
1206
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
1190
1207
|
script: |
|
|
1191
|
-
const M = JSON.parse(process.env.
|
|
1208
|
+
const M = JSON.parse(require('fs').readFileSync(`${process.env.RUNNER_TEMP}/paw-msg.json`, 'utf8'));
|
|
1192
1209
|
const msg = (k, p = {}) => M[k].replace(/\{(\w+)\}/g, (s, n) => (n in p ? p[n] : s));
|
|
1193
1210
|
const row = (name, status, elapsed = '-') => `| ${msg('ios_test_tf.step_' + name)} | ${msg('ios_test_tf.st_' + status)} | ${elapsed} |`;
|
|
1194
1211
|
const commentId = parseInt(process.env.PAW_IN_NEEDS_NOTIFY_START_OUTPUTS_COMMENT_ID);
|
|
@@ -95,6 +95,8 @@ jobs:
|
|
|
95
95
|
- name: Build verification complete
|
|
96
96
|
env:
|
|
97
97
|
PAW_REF_NAME: ${{ github.ref_name }}
|
|
98
|
+
# On a PR, github.sha is the temporary merge commit; show the PR head commit instead
|
|
99
|
+
PAW_COMMIT_SHA: ${{ github.event.pull_request.head.sha || github.sha }}
|
|
98
100
|
run: |
|
|
99
101
|
[ -f "$GITHUB_WORKSPACE/.github/scripts/messages.py" ] || { echo "::error::messages.py is missing; rerun \`npx project-auto-wizard --mode full --force\`"; exit 1; }
|
|
100
102
|
m() { (cd "$GITHUB_WORKSPACE" && python3 .github/scripts/messages.py get "$@"); }
|
|
@@ -103,7 +105,7 @@ jobs:
|
|
|
103
105
|
m cibuild.info_title
|
|
104
106
|
m cibuild.info_project project="${{ env.PROJECT_NAME }}"
|
|
105
107
|
m cibuild.info_branch branch="$PAW_REF_NAME"
|
|
106
|
-
m cibuild.info_commit sha="$
|
|
108
|
+
m cibuild.info_commit sha="$(echo "$PAW_COMMIT_SHA" | cut -c1-7)"
|
|
107
109
|
m cibuild.info_time time="$(date -u '+%Y-%m-%d %H:%M:%S UTC')"
|
|
108
110
|
|
|
109
111
|
# Job: CI Gate (the single job to register as a required check)
|