Skip to content

Upload exact CI-built Worker artifacts on credentialed runners - #222

Merged
narduk-durable-agent-sessions[bot] merged 2 commits into
mainfrom
cf-runner-upload-4795
Oct 30, 2026
Merged

narduk-durable-agent-sessions[bot] merged 2 commits into
mainfrom
cf-runner-upload-4795

Conversation

@narduk-durable-agent-sessions

@narduk-durable-agent-sessions narduk-durable-agent-sessions Bot commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

Main commits currently need a second production build in Workers Builds to upload a version. Add an opt-in production artifact to the existing CI build and a separate credentialed upload callable that consumes that exact SHA/run/attempt without app checkout, app installation, rebuild, migration or promotion. Existing callers remain unchanged until opting in.

The producer excludes docs/test-only pushes and leaves an explicit successful-step receipt for promoters that share their PR/main CI workflow. A separate main-only caller can use push.paths-ignore. Upload is same-repository main push/dispatch only, private linux-deploy group pinned, public ubuntu-latest, per-repo cancellation, optional per-app secrets with warning/skip when absent. Missing/cross-run artifacts and custom build configurations fail closed. Production artifacts retain one day; E2E continues using R2.

Validation:

  • Full repository gate at 8879a43: all 36 test modules passed; actionlint and lint_callables passed.
  • Final safety tightening at a871d7a: production builds ignore hosted/vendor route overrides and use only fleet linux-ci (private) or ubuntu-latest (public); unknown visibility fails closed. No new permission or secret was introduced.
  • Final targeted actionlint/lint_callables pass, 7 production-upload tests pass in 2.0s, and runner_default passes 30,759 routing evaluations.
Full gate timed output
  • .github/workflows/ci.yml: PASS 2.0s
  • scripts/lint_callables.py: PASS 1.1s
  • scripts/test_actionlint_native_permissions.py: PASS 1.5s
  • scripts/test_apple_gate.py: PASS 19.8s
  • scripts/test_cache_paths.py: PASS 1.7s
  • scripts/test_ci_admission.py: PASS 11.9s
  • scripts/test_ci_artifact_store.py: PASS 11.4s
  • scripts/test_dependency_audit.py: PASS 29.4s
  • scripts/test_design_ledger.py: PASS 2.0s
  • scripts/test_design_publish.py: PASS 0.6s
  • scripts/test_e2e_build_artifact.py: PASS 6.5s
  • scripts/test_e2e_mode.py: PASS 11.5s
  • scripts/test_e2e_pr_subset.py: PASS 22.8s
  • scripts/test_e2e_quarantine.py: PASS 3.8s
  • scripts/test_e2e_reuse.py: PASS 41.7s
  • scripts/test_e2e_skip_paths.py: PASS 65.6s
  • scripts/test_eslint_cache.py: PASS 3.6s
  • scripts/test_exact_candidate.py: PASS 1.1s
  • scripts/test_extra_env.py: PASS 0.3s
  • scripts/test_fast_path.py: PASS 54.6s
  • scripts/test_flake_digest.py: PASS 1.3s
  • scripts/test_foundation_check.py: PASS 17.5s
  • scripts/test_package_auth_cleanup.py: PASS 15.7s
  • scripts/test_package_batch_metadata.py: PASS 2.5s
  • scripts/test_permission_ceiling.py: PASS 4.4s
  • scripts/test_playwright_toolchain.py: PASS 6.1s
  • scripts/test_preview_gate.py: PASS 15.5s
  • scripts/test_production_upload.py: PASS 3.1s
  • scripts/test_python_static_gate.py: PASS 0.2s
  • scripts/test_quality_gates.py: PASS 5.5s
  • scripts/test_red_main_listener.py: PASS 4.5s
  • scripts/test_required_gate.py: PASS 0.3s
  • scripts/test_reusable_browser_tests.py: PASS 1.8s
  • scripts/test_runner_default.py: PASS 23.5s
  • scripts/test_script_gates.py: PASS 50.4s
  • scripts/test_store_placement.py: PASS 1.6s
  • scripts/test_taskgraph.py: PASS 24.3s
  • scripts/test_tee_pipefail.py: PASS 0.1s

workflow-gate PASS

Self-check: a871d7a — main/fork/public routes, source-run binding, no app execution on deploy, no production pointer/migration changes, no existing permission ceiling widened. Independent review requested at #222 (comment). No reaction/review after five minutes; using the documented VERIFY-RECIPE fallback self-check. No claim of independent reviewer approval.

Rollout remains open: Stonx CI currently disables its production build; required public build inputs and the canonical deployment builder parser need adaptation. The lane has no nvault credential, so it cannot obtain raw Builds minutes or perform scoped provider cutover. No app or Workers Builds integration is changed by this PR.

Refs narduk-enterprises/agent-infrastructure#4795

@narduk-durable-agent-sessions

Copy link
Copy Markdown
Contributor Author

/review

Review 8879a43 for blockers in the production-artifact/upload boundary: SHA/run/attempt identity, main/fork/public guards, no custom build or app install on the credentialed host, credential omission, and promotion ordering. Read-only review; local gate already runs in the implementing lane, so do not run a concurrent heavy gate there. Existing app cutovers and canonical parser work are explicitly outside this PR.

@narduk-durable-agent-sessions
narduk-durable-agent-sessions Bot merged commit d050681 into main Oct 30, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant