Merge pull request 'infra(ci): route publish/deploy ship jobs to dedicated publish lane (internal#462)' (#1376) from infra/internal-462-publish-deploy-lane into main
Some checks are pending
publish-canvas-image / Build & push canvas image (push) Successful in 8m37s
publish-workspace-server-image / build-and-push (push) Successful in 14m26s
Block internal-flavored paths / Block forbidden paths (push) Successful in 18s
CI / Detect changes (push) Successful in 29s
CI / Shellcheck (E2E scripts) (push) Successful in 1m5s
E2E API Smoke Test / detect-changes (push) Successful in 36s
E2E Chat / detect-changes (push) Successful in 42s
E2E Staging Canvas (Playwright) / detect-changes (push) Successful in 50s
Handlers Postgres Integration / detect-changes (push) Successful in 56s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (push) Successful in 48s
Runtime PR-Built Compatibility / detect-changes (push) Successful in 35s
Secret scan / Scan diff for credential-shaped strings (push) Successful in 20s
Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (push) Successful in 2m3s
lint-continue-on-error-tracking / lint-continue-on-error-tracking (push) Successful in 2m51s
CI / Python Lint & Test (push) Successful in 8m42s
E2E API Smoke Test / E2E API Smoke Test (push) Successful in 17s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (push) Successful in 13s
E2E Chat / E2E Chat (push) Successful in 32s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (push) Successful in 3m29s
CI / Canvas (Next.js) (push) Successful in 24m31s
CI / Platform (Go) (push) Successful in 27m22s
CI / all-required (push) Successful in 26m22s
Handlers Postgres Integration / Handlers Postgres Integration (push) Successful in 7m43s
publish-workspace-server-image / Production auto-deploy (push) Successful in 29m59s
Sweep stale Cloudflare DNS records / Sweep CF orphans (push) Successful in 19s
ci-required-drift / drift (push) Successful in 1m13s
CI / Canvas Deploy Reminder (push) Successful in 0s
Sweep stale Cloudflare Tunnels / Sweep CF tunnels (push) Successful in 3s
Sweep stale e2e-* orgs (staging) / Sweep e2e orgs (push) Successful in 3s
status-reaper / reap (push) Successful in 56s
gitea-merge-queue / queue (push) Successful in 2s
Staging SaaS smoke (every 30 min) / Staging SaaS smoke (push) Successful in 4m15s
Continuous synthetic E2E (staging) / Synthetic E2E against staging (push) Has started running
main-red-watchdog / watchdog (push) Successful in 22s
gate-check-v3 / gate-check (push) Successful in 32s
Some checks are pending
publish-canvas-image / Build & push canvas image (push) Successful in 8m37s
publish-workspace-server-image / build-and-push (push) Successful in 14m26s
Block internal-flavored paths / Block forbidden paths (push) Successful in 18s
CI / Detect changes (push) Successful in 29s
CI / Shellcheck (E2E scripts) (push) Successful in 1m5s
E2E API Smoke Test / detect-changes (push) Successful in 36s
E2E Chat / detect-changes (push) Successful in 42s
E2E Staging Canvas (Playwright) / detect-changes (push) Successful in 50s
Handlers Postgres Integration / detect-changes (push) Successful in 56s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (push) Successful in 48s
Runtime PR-Built Compatibility / detect-changes (push) Successful in 35s
Secret scan / Scan diff for credential-shaped strings (push) Successful in 20s
Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (push) Successful in 2m3s
lint-continue-on-error-tracking / lint-continue-on-error-tracking (push) Successful in 2m51s
CI / Python Lint & Test (push) Successful in 8m42s
E2E API Smoke Test / E2E API Smoke Test (push) Successful in 17s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (push) Successful in 13s
E2E Chat / E2E Chat (push) Successful in 32s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (push) Successful in 3m29s
CI / Canvas (Next.js) (push) Successful in 24m31s
CI / Platform (Go) (push) Successful in 27m22s
CI / all-required (push) Successful in 26m22s
Handlers Postgres Integration / Handlers Postgres Integration (push) Successful in 7m43s
publish-workspace-server-image / Production auto-deploy (push) Successful in 29m59s
Sweep stale Cloudflare DNS records / Sweep CF orphans (push) Successful in 19s
ci-required-drift / drift (push) Successful in 1m13s
CI / Canvas Deploy Reminder (push) Successful in 0s
Sweep stale Cloudflare Tunnels / Sweep CF tunnels (push) Successful in 3s
Sweep stale e2e-* orgs (staging) / Sweep e2e orgs (push) Successful in 3s
status-reaper / reap (push) Successful in 56s
gitea-merge-queue / queue (push) Successful in 2s
Staging SaaS smoke (every 30 min) / Staging SaaS smoke (push) Successful in 4m15s
Continuous synthetic E2E (staging) / Synthetic E2E against staging (push) Has started running
main-red-watchdog / watchdog (push) Successful in 22s
gate-check-v3 / gate-check (push) Successful in 32s
This commit is contained in:
commit
2cb52615b0
@ -49,13 +49,17 @@ jobs:
|
|||||||
# bp-exempt: post-merge image publication side effect; CI / all-required gates source changes.
|
# bp-exempt: post-merge image publication side effect; CI / all-required gates source changes.
|
||||||
build-and-push:
|
build-and-push:
|
||||||
name: Build & push canvas image
|
name: Build & push canvas image
|
||||||
# REVERTED (infra/revert-docker-runner-label): `runs-on: ubuntu-latest` restored.
|
# Dedicated publish/release lane (internal#462 / #394 / #399). Ship
|
||||||
# The `docker` label is not registered on any act_runner. `runs-on: [ubuntu-latest, docker]`
|
# path (on: push:main, canvas/**) — reserved capacity so a merged
|
||||||
# causes jobs to queue indefinitely with zero eligible runners — strictly worse than the
|
# canvas fix's image build never FIFO-queues behind PR required-CI.
|
||||||
# pre-#599 coin-flip (50% success rate). Once the `docker` label is registered on
|
# The `publish` label resolves ONLY to the molecule-runner-publish-*
|
||||||
# ≥2 runners, re-apply the fix from #599 (infra/docker-runner-label).
|
# sub-pool (config.publish.yaml). HARD DEPENDENCY: this MUST land
|
||||||
# See issue #576 + infra-lead pulse ~00:30Z.
|
# AFTER the publish-lane runners are registered/advertising `publish`
|
||||||
runs-on: ubuntu-latest
|
# — the earlier #599 `docker` label attempt queued indefinitely with
|
||||||
|
# zero eligible runners precisely because the label was targeted
|
||||||
|
# before any runner advertised it (see #576). The lane is registered
|
||||||
|
# in this rollout (internal#462) so the precondition holds.
|
||||||
|
runs-on: publish
|
||||||
# Phase 3 (RFC #219 §1): surface broken workflows without blocking.
|
# Phase 3 (RFC #219 §1): surface broken workflows without blocking.
|
||||||
# mc#774: pre-existing continue-on-error mask; root-fix and remove, do not renew silently.
|
# mc#774: pre-existing continue-on-error mask; root-fix and remove, do not renew silently.
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
|
|||||||
@ -66,7 +66,10 @@ concurrency:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
publish:
|
publish:
|
||||||
runs-on: ubuntu-latest
|
# Dedicated publish/release lane (internal#462 / #394 / #399). Ship
|
||||||
|
# path (on: push tag runtime-v*) — reserved capacity, never FIFO
|
||||||
|
# behind PR-CI. `publish` resolves only to molecule-runner-publish-*.
|
||||||
|
runs-on: publish
|
||||||
outputs:
|
outputs:
|
||||||
version: ${{ steps.version.outputs.version }}
|
version: ${{ steps.version.outputs.version }}
|
||||||
wheel_sha256: ${{ steps.wheel_hash.outputs.wheel_sha256 }}
|
wheel_sha256: ${{ steps.wheel_hash.outputs.wheel_sha256 }}
|
||||||
@ -166,7 +169,9 @@ jobs:
|
|||||||
|
|
||||||
cascade:
|
cascade:
|
||||||
needs: publish
|
needs: publish
|
||||||
runs-on: ubuntu-latest
|
# Publish/release lane (internal#462) — downstream of the runtime
|
||||||
|
# publish ship job; keep it on the reserved lane too.
|
||||||
|
runs-on: publish
|
||||||
steps:
|
steps:
|
||||||
- name: Wait for PyPI to propagate the new version
|
- name: Wait for PyPI to propagate the new version
|
||||||
env:
|
env:
|
||||||
|
|||||||
@ -54,7 +54,14 @@ env:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-and-push:
|
build-and-push:
|
||||||
runs-on: ubuntu-latest
|
# Dedicated publish/release lane (internal#462 / #394 / #399). This
|
||||||
|
# is a post-merge ship job (on: push:main) — it must NOT FIFO-compete
|
||||||
|
# with PR required-CI on the shared pool (PR#1350's prod image build
|
||||||
|
# was delayed ~25min this way). The `publish` label resolves ONLY to
|
||||||
|
# the reserved molecule-runner-publish-* sub-pool (config.publish.yaml,
|
||||||
|
# OUTSIDE the managed 1..20 range) so a merged fix's image build
|
||||||
|
# starts immediately while PR-CI keeps the general pool.
|
||||||
|
runs-on: publish
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
@ -181,7 +188,9 @@ jobs:
|
|||||||
name: Production auto-deploy
|
name: Production auto-deploy
|
||||||
needs: build-and-push
|
needs: build-and-push
|
||||||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
|
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
|
||||||
runs-on: ubuntu-latest
|
# Publish/release lane (internal#462) — production deploy of a merged
|
||||||
|
# fix; reserved capacity, never queued behind PR-CI.
|
||||||
|
runs-on: publish
|
||||||
timeout-minutes: 75
|
timeout-minutes: 75
|
||||||
env:
|
env:
|
||||||
CP_URL: ${{ vars.PROD_CP_URL || 'https://api.moleculesai.app' }}
|
CP_URL: ${{ vars.PROD_CP_URL || 'https://api.moleculesai.app' }}
|
||||||
|
|||||||
@ -68,7 +68,10 @@ jobs:
|
|||||||
# bp-exempt: production redeploy is a side-effect workflow, not a merge gate.
|
# bp-exempt: production redeploy is a side-effect workflow, not a merge gate.
|
||||||
redeploy:
|
redeploy:
|
||||||
if: ${{ github.event_name == 'workflow_dispatch' }}
|
if: ${{ github.event_name == 'workflow_dispatch' }}
|
||||||
runs-on: ubuntu-latest
|
# Dedicated publish/release lane (internal#462 / #394 / #399).
|
||||||
|
# Production tenant redeploy — a deploy action, reserved capacity so
|
||||||
|
# it never queues behind PR-CI. `publish` -> molecule-runner-publish-*.
|
||||||
|
runs-on: publish
|
||||||
# Phase 3 (RFC #219 §1): surface broken workflows without blocking.
|
# Phase 3 (RFC #219 §1): surface broken workflows without blocking.
|
||||||
# mc#774: pre-existing continue-on-error mask; root-fix and remove, do not renew silently.
|
# mc#774: pre-existing continue-on-error mask; root-fix and remove, do not renew silently.
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
|
|||||||
@ -75,7 +75,10 @@ env:
|
|||||||
jobs:
|
jobs:
|
||||||
# bp-exempt: post-merge staging redeploy side effect; CI / all-required gates source changes.
|
# bp-exempt: post-merge staging redeploy side effect; CI / all-required gates source changes.
|
||||||
redeploy:
|
redeploy:
|
||||||
runs-on: ubuntu-latest
|
# Dedicated publish/release lane (internal#462 / #394 / #399).
|
||||||
|
# Post-merge staging redeploy — a deploy action, reserved capacity.
|
||||||
|
# `publish` -> molecule-runner-publish-* sub-pool.
|
||||||
|
runs-on: publish
|
||||||
# Phase 3 (RFC #219 §1): surface broken workflows without blocking.
|
# Phase 3 (RFC #219 §1): surface broken workflows without blocking.
|
||||||
# mc#774: pre-existing continue-on-error mask; root-fix and remove, do not renew silently.
|
# mc#774: pre-existing continue-on-error mask; root-fix and remove, do not renew silently.
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user