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
|
|
106
|
-
|
|
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
|
|
142
|
-
|
|
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
|
-
|
|
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
|
-
|
|
161
|
-
|
|
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)
|
|
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(
|
|
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
|
|
package/docs/BACKEND_SSH_GATE.md
CHANGED
|
@@ -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
|