gowalk-cicd 1.0.205 → 1.0.207

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/action.yml CHANGED
@@ -458,6 +458,7 @@ runs:
458
458
  if: ${{ inputs.archive == 'true' && inputs.candidate-binary == '' }}
459
459
  shell: bash
460
460
  env:
461
+ CONFIGURATION: ${{ inputs.configuration || env.CFG_CONFIGURATION }}
461
462
  PROJECT: ${{ inputs.project || env.CFG_PROJECT }}
462
463
  WORKSPACE: ${{ inputs.workspace || env.CFG_WORKSPACE }}
463
464
  TEAM_ID: ${{ inputs.team-id || env.CFG_TEAM_ID }}
@@ -102,9 +102,8 @@ def _entitlements_from_configs(
102
102
  there — a missed entitlements file costs a clearer error, a wrong one costs
103
103
  a wrong App ID edit.
104
104
 
105
- Only the ARCHIVE configuration counts: CI archives Release, so its
106
- CODE_SIGN_ENTITLEMENTS (falling back to Profile, then to every config
107
- only when neither exists) decides provisioning. An entitlement wired
105
+ Only the archive configuration counts. Callers pass that configuration
106
+ alone when provisioning. An entitlement wired
108
107
  into Debug alone — the standard way to simulator-test an Apple-granted
109
108
  capability (CarPlay) before the grant lands — must NOT force that
110
109
  capability onto the App ID for the archive.
@@ -132,14 +131,14 @@ def _entitlements_from_configs(
132
131
  return ""
133
132
 
134
133
 
135
- def discover_signable_targets(project_path: str) -> list[dict]:
134
+ def discover_signable_targets(project_path: str, configuration: str = "Release") -> list[dict]:
136
135
  """Return one entry per signable native target.
137
136
 
138
137
  Each entry:
139
138
  ``{"name": str, "bundle_id": str, "config_ids": [str,...],
140
139
  "entitlements": str}`` where ``config_ids`` is the list of
141
- XCBuildConfiguration UUIDs whose ``buildSettings`` dict we need to patch
142
- (typically Debug + Release) and ``entitlements`` is the target's
140
+ selected archive XCBuildConfiguration UUID whose ``buildSettings`` dict
141
+ we need to patch, and ``entitlements`` is the target's
143
142
  CODE_SIGN_ENTITLEMENTS path relative to the project directory ("" when the
144
143
  target declares none).
145
144
  """
@@ -155,10 +154,20 @@ def discover_signable_targets(project_path: str) -> list[dict]:
155
154
  name = obj.get("name") or "<unknown>"
156
155
  config_list = objects.get(obj.get("buildConfigurationList")) or {}
157
156
  config_ids = list(config_list.get("buildConfigurations") or [])
158
- bundle_id = _bundle_id_from_configs(objects, config_ids)
157
+ selected = [cid for cid in config_ids
158
+ if (objects.get(cid) or {}).get("name") == configuration]
159
+ if len(selected) != 1:
160
+ raise SystemExit(
161
+ f"discover_signable_targets: {name!r} has no unique "
162
+ f"{configuration!r} configuration"
163
+ )
164
+ bundle_id = _bundle_id_from_configs(objects, selected)
159
165
  if not bundle_id:
160
- print(f"skip target {name!r}: no PRODUCT_BUNDLE_IDENTIFIER")
161
- continue
166
+ raise SystemExit(
167
+ f"discover_signable_targets: {name!r} has no literal "
168
+ f"PRODUCT_BUNDLE_IDENTIFIER in {configuration!r}"
169
+ )
170
+ config_ids = selected
162
171
  targets.append(
163
172
  {
164
173
  "name": name,
@@ -197,7 +197,7 @@ def main() -> None:
197
197
  token = make_jwt(env("ASC_KEY_ID"), env("ASC_ISSUER_ID"), env("ASC_KEY_PATH"))
198
198
  creds_dir = _resolve_creds_dir()
199
199
 
200
- targets = discover_signable_targets(project)
200
+ targets = discover_signable_targets(project, optional_env("CONFIGURATION") or "Release")
201
201
  bundle_ids = sorted({t["bundle_id"] for t in targets})
202
202
  print(f"Signable targets ({len(targets)}):")
203
203
  for t in targets:
@@ -31,7 +31,7 @@ def run(arguments, *, optional=False):
31
31
  def decode(raw, *, lines=False):
32
32
  try:
33
33
  value = [json.loads(line) for line in raw.splitlines()] if lines else json.loads(raw)
34
- if not isinstance(value, list) or len(value) > 1024:
34
+ if not isinstance(value, list):
35
35
  raise ValueError()
36
36
  return value
37
37
  except (ValueError, TypeError, UnicodeError):
@@ -43,7 +43,7 @@ def identifiers(raw):
43
43
  values = raw.decode('ascii').splitlines()
44
44
  except UnicodeError:
45
45
  raise NetworkFailure('network_invalid') from None
46
- if len(values) > 1024 or len(set(values)) != len(values) or any(not re.fullmatch(CID, x) for x in values):
46
+ if len(set(values)) != len(values) or any(not re.fullmatch(CID, x) for x in values):
47
47
  raise NetworkFailure('network_invalid')
48
48
  return sorted(values)
49
49
 
@@ -129,6 +129,11 @@ it never means a VPN is provisioned, traffic is reachable, a pool is globally un
129
129
  The reader binds the existing API's `BUILD_SHA`, checks its exact project/service/directory labels, and
130
130
  rechecks application identity, selected network inventory, host addresses/routes, Docker UDP bindings and
131
131
  socket observations before returning. A changed or ambiguous observation refuses the result.
132
+ Host-wide inventories are bounded only by each command's 1 MiB output limit; a larger one refuses
133
+ `output_limit`. `ip -j address show` reaches it first, at roughly 2,000 host interfaces (one bridge per app
134
+ plus a veth per attached container). Host runtimes before 1.0.206 refused a shared host with more than 1024
135
+ interfaces, routes, networks or running containers as `network_invalid`. `reader_version` stays `1.0.194`
136
+ for client compatibility, so prove adoption with the install receipt and the forced command's release path.
132
137
 
133
138
  - `bridge` reports only the selected app bridge's actual network ID/name, ownership key, interface and IPAM.
134
139
  - `overlap` distinguishes selected-bridge foreign/host overlaps and proposed-pool selected/foreign/host
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gowalk-cicd",
3
- "version": "1.0.205",
3
+ "version": "1.0.207",
4
4
  "description": "Zero-config GitHub Actions delivery for iOS TestFlight and Android Google Play.",
5
5
  "type": "module",
6
6
  "bin": {