@mutmutco/codex-plugin 4.5.61 → 4.5.63
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/package.json
CHANGED
|
@@ -383,7 +383,8 @@ collaborator list + the per-branch allowlist are the record — no separate rost
|
|
|
383
383
|
under the org **wall-clock budget** (#3178): the render pins `run-with-budget` to the CLI's blessed SHA
|
|
384
384
|
with `--var GATE_MAX_SECONDS=` (300s onboarding default — tighten once the gate is measured, via
|
|
385
385
|
`--var` or `org project set <repo> --var gate={"maxSeconds":N}`); `ci audit` and the release train
|
|
386
|
-
both enforce the step, so do not remove it.
|
|
386
|
+
both enforce the step, so do not remove it. The tenant-container product image build (#7542)
|
|
387
|
+
shares that ceiling — no separate knob. Every trigger runs the full `GATE_CMD`. A repo whose checks
|
|
387
388
|
need a service container or an extra budgeted step declares them in its registry gate config, never by
|
|
388
389
|
hand-editing the rendered gate (#7407): `gate.services` is keyed by service name with `image`, `env`,
|
|
389
390
|
`ports`, one-line `options` and `tmpfs` paths; `gate.steps` is a list of `{name, command, env,
|
|
@@ -48,6 +48,9 @@ concurrency:
|
|
|
48
48
|
|
|
49
49
|
permissions:
|
|
50
50
|
contents: read
|
|
51
|
+
# MMI-Hub#7542: the product image build below reads org private packages with the workflow's
|
|
52
|
+
# own ephemeral token (NODE_AUTH_TOKEN) — the same reader the central deploy uses.
|
|
53
|
+
packages: read
|
|
51
54
|
|
|
52
55
|
jobs:
|
|
53
56
|
gate:
|
|
@@ -94,6 +97,39 @@ jobs:
|
|
|
94
97
|
done < "$offenders"
|
|
95
98
|
exit 1
|
|
96
99
|
fi
|
|
100
|
+
# MMI-Hub#7542: build the product image in the gate. The post-merge deploy builds the
|
|
101
|
+
# product's own docker-compose.yml (`docker compose up --build` on the box); nothing in the
|
|
102
|
+
# gate did, so MMI-Scout#301 merged green and turned the next dev deploy red (exit 70) when
|
|
103
|
+
# its Dockerfile ran a test-only entry the image never received. `docker compose build`
|
|
104
|
+
# reuses the deploy's OWN build definition — context, dockerfile, args, target — so a
|
|
105
|
+
# Dockerfile/compose break fails this required `gate` job before the merge instead of the dev
|
|
106
|
+
# deploy after it. Tenant-container only: repos without the deploy's pre-flighted runtime
|
|
107
|
+
# files (Dockerfile + docker-compose.yml) skip in a second — no new job, no new required
|
|
108
|
+
# context, no ruleset or registry change (#7012 needs nothing to cover).
|
|
109
|
+
- name: Product image build (tenant-container only)
|
|
110
|
+
env:
|
|
111
|
+
# The documented build-secret opt-in (compose `build.secrets` + registry
|
|
112
|
+
# requiredBuildSecrets `NODE_AUTH_TOKEN=@github-packages-token`): the workflow's own
|
|
113
|
+
# ephemeral token reads org private packages — the same reader the central deploy
|
|
114
|
+
# uses. Repos whose compose never references it never consume it.
|
|
115
|
+
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
116
|
+
uses: mutmutco/MMI-Hub/.github/actions/run-with-budget@{{GATE_BUDGET_SHA}}
|
|
117
|
+
with:
|
|
118
|
+
# Build-only: no push, no run, no published ports. The absolute -f keeps a non-root
|
|
119
|
+
# GATE_WORKDIR building the repo-root compose the deploy ships; relative build contexts
|
|
120
|
+
# inside that file resolve against its own directory, exactly as on the box. Layer cache
|
|
121
|
+
# is the runner-local dockerd shared across the host's mmi-live lanes — the same
|
|
122
|
+
# local-cache model the box-side `up --build` relies on, so warm PRs pay seconds.
|
|
123
|
+
command: |
|
|
124
|
+
if [ ! -f "$GITHUB_WORKSPACE/Dockerfile" ] || [ ! -f "$GITHUB_WORKSPACE/docker-compose.yml" ]; then
|
|
125
|
+
echo "no tenant-container runtime files (Dockerfile + docker-compose.yml) — skipping product image build"
|
|
126
|
+
exit 0
|
|
127
|
+
fi
|
|
128
|
+
docker compose version >/dev/null 2>&1 || { echo "::error title=CI runner toolchain::RUNNER NOT PROVISIONED — 'docker compose' not on PATH. This is the runner, not your diff; no image was built. Re-run the job; if it persists the mmi-runner docker toolchain needs attention (docs/Guides/gh-runner-runbook.md in MMI-Hub)."; exit 1; }
|
|
129
|
+
docker compose -f "$GITHUB_WORKSPACE/docker-compose.yml" build
|
|
130
|
+
max-seconds: {{GATE_MAX_SECONDS}}
|
|
131
|
+
label: product image build
|
|
132
|
+
working-directory: {{GATE_WORKDIR}}
|
|
97
133
|
# #5660: self-hosted gates opt OUT of setup-node automatic npm cache restore unless a bounded
|
|
98
134
|
# cache policy is declared on runner-node-toolchain (cache + cache-restore-max-mb). Per-job
|
|
99
135
|
# NPM_CONFIG_CACHE above is the org default; unbounded Actions cache blobs can exhaust mmi-live
|