gowalk-cicd 1.0.136 → 1.0.138

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/CLAUDE.md CHANGED
@@ -415,7 +415,9 @@ node /path/to/gowalk-cicd/bin/cli.mjs
415
415
  change the Google account proxy. Update workflow wiring as well as action directories.
416
416
 
417
417
  - Mobile Deploy watches `.factory/releases/mobile.json`, produced from committed task source and
418
- repository variables. Unknown inputs and embedded editors remain in its source proof; native trees
418
+ the named build-variable allow-list shared by freeze and runtime in `mobile_inputs.cjs`.
419
+ The list follows `templates/deploy.yml`; rotating Play ownership leases stay excluded.
420
+ Unknown inputs and embedded editors remain in its source proof; native trees
419
421
  are platform-scoped. Backend/web deployments remain independent. Confirmed store uploads are
420
422
  recorded immediately in repository deployment receipts; retries reuse their prior-run evidence.
421
423
  An uncertain upload never starts another binary automatically. Preserve its signed artifact,
@@ -1 +1 @@
1
- 1.0.136
1
+ 1.0.138
@@ -19,8 +19,22 @@ function input(name, platform) {
19
19
  return true;
20
20
  }
21
21
 
22
+ // Named vars read by templates/deploy.yml, except the rotating Play ownership
23
+ // lease: it authorizes provider access but never changes a build. Keep the list
24
+ // checked against the template, and share the projection with the freeze CLI.
25
+ const BUILD_VARIABLES = [
26
+ 'BACKEND_API_DOMAIN', 'BACKEND_APP_NAME', 'BACKEND_DEPLOY_HOST', 'BACKEND_HEALTH_PATH',
27
+ 'DEPLOY_PLATFORMS', 'FIREBASE_APP_ID', 'GOOGLE_PLAY_STATUS', 'GOOGLE_PLAY_TRACK',
28
+ 'GOOGLE_PLAY_USER_FRACTION', 'JAVA_VERSION', 'ONBOARDING_PUBLIC_ORIGIN',
29
+ ];
30
+
31
+ function buildVariables(value = {}) {
32
+ return Object.fromEntries(BUILD_VARIABLES.filter(name => Object.hasOwn(value, name))
33
+ .map(name => [name, value[name]]));
34
+ }
35
+
22
36
  function configuration(value = {}) {
23
- return digest(JSON.stringify(Object.fromEntries(Object.entries(value).sort(([a], [b]) => a.localeCompare(b)))));
37
+ return digest(JSON.stringify(buildVariables(value)));
24
38
  }
25
39
 
26
40
  function fingerprint(platform, ref = 'HEAD') {
@@ -78,4 +92,4 @@ function read(variables = {}) {
78
92
  }
79
93
  return manifest;
80
94
  }
81
- module.exports = {INTENT, SCHEMA, input, fingerprint, create, read, configuration};
95
+ module.exports = {INTENT, SCHEMA, BUILD_VARIABLES, buildVariables, input, fingerprint, create, read, configuration};
@@ -1 +1 @@
1
- 1.0.136
1
+ 1.0.138
@@ -1 +1 @@
1
- 1.0.136
1
+ 1.0.138
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gowalk-cicd",
3
- "version": "1.0.136",
3
+ "version": "1.0.138",
4
4
  "description": "Zero-config GitHub Actions delivery for iOS TestFlight and Android Google Play.",
5
5
  "type": "module",
6
6
  "bin": {
package/src/release.mjs CHANGED
@@ -12,17 +12,17 @@ export function variables(repository, execute) {
12
12
  for (const scope of scopes) {
13
13
  const pages = JSON.parse(execute('gh', ['api', `repos/${repository}/actions/${scope}?per_page=100`,
14
14
  '--paginate', '--slurp']));
15
- if (!Array.isArray(pages) || pages.some(page => !Array.isArray(page.variables))) {
15
+ if (!Array.isArray(pages) || !pages.length || pages.some(page => !Array.isArray(page?.variables))) {
16
16
  throw Error('mobile_release_configuration_unverified');
17
17
  }
18
18
  for (const row of pages.flatMap(page => page.variables)) {
19
- if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(row.name) || typeof row.value !== 'string') {
19
+ if (!row || !/^[A-Za-z_][A-Za-z0-9_]*$/.test(row.name) || typeof row.value !== 'string') {
20
20
  throw Error('mobile_release_configuration_unverified');
21
21
  }
22
22
  result[row.name] = row.value;
23
23
  }
24
24
  }
25
- return result;
25
+ return inputs.buildVariables(result);
26
26
  }
27
27
 
28
28
  export function release(platform) {