gowalk-cicd 1.0.133 → 1.0.134
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/action/.daemux-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.0.
|
|
1
|
+
1.0.134
|
|
@@ -1 +1 @@
|
|
|
1
|
-
1.0.
|
|
1
|
+
1.0.134
|
|
@@ -32,6 +32,21 @@ async function upload(program, env, directory, execute = processRunner.execute,
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
+
//: A code reaches the annotation only as a bare token: it is interpolated into
|
|
36
|
+
//: workflow-command syntax, so anything outside this shape is reported as such
|
|
37
|
+
//: rather than trusted.
|
|
38
|
+
function state(code) {
|
|
39
|
+
return typeof code === 'string' && /^[a-z0-9_]{1,64}$/.test(code) ? code : 'unknown';
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function stateAnnotation(receipt) {
|
|
43
|
+
return `::${receipt.ok === true ? 'notice' : 'error'} title=play_upload_state::`
|
|
44
|
+
+ `gowalk-cicd/play-upload-state.v1 ok=${receipt.ok === true}`
|
|
45
|
+
+ ` code=${state(receipt.code)} review_pending=${receipt.review_pending === true}`
|
|
46
|
+
+ ` attempts=${Number.isSafeInteger(receipt.attempts) ? receipt.attempts : 'unknown'}`;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
|
|
35
50
|
async function main() {
|
|
36
51
|
let directory, receipt;
|
|
37
52
|
try {
|
|
@@ -66,10 +81,26 @@ async function main() {
|
|
|
66
81
|
appendFileSync(process.env.GITHUB_OUTPUT, `review-pending=${receipt.review_pending}\nreceipt=${encoded}\n`);
|
|
67
82
|
}
|
|
68
83
|
console.log(`::${receipt.ok ? 'notice' : 'error'} title=play_upload_result::${encoded}`);
|
|
84
|
+
// The JSON receipt above does not survive as a READABLE annotation on this job.
|
|
85
|
+
// `GOOGLE_PLAY_SERVICE_ACCOUNT_JSON` is a multi-line JSON secret, so Actions
|
|
86
|
+
// registers each of its lines as maskable — and its first and last lines are a
|
|
87
|
+
// bare `{` and `}`. Every brace in this job's output is therefore replaced by
|
|
88
|
+
// `***`, leaving the payload legible to a person but not parseable by the
|
|
89
|
+
// panel, which reads typed check-run annotations and is forbidden the log text.
|
|
90
|
+
// The iOS job emits the same JSON shape unmasked, which is what isolates the
|
|
91
|
+
// cause to this job's secret rather than to redaction policy in general.
|
|
92
|
+
//
|
|
93
|
+
// So the decision-relevant fields also go out brace-free, in the same
|
|
94
|
+
// key=value shape as `play_upload_diagnostic` — which is emitted from this
|
|
95
|
+
// very action and arrives unmasked. `review_pending` is the field that
|
|
96
|
+
// distinguishes an upload from a submission, and losing it is how a green
|
|
97
|
+
// Android job reads as "Play is done" when the AAB sits unreviewed on a
|
|
98
|
+
// test track.
|
|
99
|
+
console.log(stateAnnotation(receipt));
|
|
69
100
|
if (!receipt.ok) process.exitCode = 1;
|
|
70
101
|
}
|
|
71
102
|
|
|
72
|
-
module.exports = {upload, main};
|
|
103
|
+
module.exports = {upload, main, state, stateAnnotation};
|
|
73
104
|
if (require.main === module) void main().catch(() => {
|
|
74
105
|
process.stderr.write('play_upload_receipt_failed\n'); process.exitCode = 1;
|
|
75
106
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
1.0.
|
|
1
|
+
1.0.134
|