fix(ci): unblock runtime publish and secret scan (#1479)
Block internal-flavored paths / Block forbidden paths (push) Successful in 5s
CI / Detect changes (push) Successful in 7s
CI / Shellcheck (E2E scripts) (push) Successful in 12s
E2E API Smoke Test / detect-changes (push) Successful in 9s
E2E Chat / detect-changes (push) Successful in 8s
Handlers Postgres Integration / detect-changes (push) Successful in 4s
E2E Staging Canvas (Playwright) / detect-changes (push) Successful in 8s
Harness Replays / detect-changes (push) Successful in 7s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (push) Successful in 4s
Runtime PR-Built Compatibility / detect-changes (push) Successful in 17s
Secret scan / Scan diff for credential-shaped strings (push) Successful in 3s
publish-workspace-server-image / build-and-push (push) Successful in 4m1s
Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (push) Successful in 1m17s
lint-continue-on-error-tracking / lint-continue-on-error-tracking (push) Successful in 1m26s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (push) Successful in 4s
Harness Replays / Harness Replays (push) Successful in 5s
E2E API Smoke Test / E2E API Smoke Test (push) Failing after 1m5s
Handlers Postgres Integration / Handlers Postgres Integration (push) Successful in 1m11s
E2E Chat / E2E Chat (push) Failing after 2m21s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (push) Successful in 2m2s
CI / Platform (Go) (push) Failing after 4m59s
CI / all-required (push) Failing after 4m21s
publish-workspace-server-image / Production auto-deploy (push) Failing after 2m47s
CI / Python Lint & Test (push) Successful in 6m39s
CI / Canvas (Next.js) (push) Successful in 7m42s
CI / Canvas Deploy Reminder (push) Successful in 2s
E2E Staging SaaS (full lifecycle) / pr-validate (push) Successful in 26s
E2E Staging SaaS (full lifecycle) / E2E Staging SaaS (push) Successful in 7m3s
E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility (push) Has been skipped
E2E Staging External Runtime / E2E Staging External Runtime (push) Successful in 5m6s
Sweep stale Cloudflare Tunnels / Sweep CF tunnels (push) Successful in 7s
Staging SaaS smoke (every 30 min) / Staging SaaS smoke (push) Successful in 6m59s
main-red-watchdog / watchdog (push) Successful in 27s
gate-check-v3 / gate-check (push) Successful in 38s
Sweep stale e2e-* orgs (staging) / Sweep e2e orgs (push) Successful in 3s
Sweep stale Cloudflare DNS records / Sweep CF orphans (push) Successful in 11s
ci-required-drift / drift (push) Successful in 33s
Continuous synthetic E2E (staging) / Synthetic E2E against staging (push) Successful in 6m54s
gitea-merge-queue / queue (push) Successful in 1m0s
status-reaper / reap (push) Successful in 1m22s

Co-authored-by: hongming <hongmingwang@moleculesai.app>
Co-committed-by: hongming <hongmingwang@moleculesai.app>
This commit was merged in pull request #1479.
This commit is contained in:
2026-05-18 06:16:59 +00:00
parent 684d9b699c
commit 7cff067b6e
2 changed files with 25 additions and 10 deletions
+19 -4
View File
@@ -104,7 +104,7 @@ jobs:
with:
python-version: "3.11"
- name: Compute next version from PyPI latest
- name: Compute next version from PyPI latest and existing tags
id: bump
run: |
set -eu
@@ -112,9 +112,24 @@ jobs:
| python -c "import sys,json; print(json.load(sys.stdin)['info']['version'])")
MAJOR=$(echo "$LATEST" | cut -d. -f1)
MINOR=$(echo "$LATEST" | cut -d. -f2)
PATCH=$(echo "$LATEST" | cut -d. -f3)
VERSION="${MAJOR}.${MINOR}.$((PATCH+1))"
echo "PyPI latest=$LATEST -> next=$VERSION"
TAG_LATEST=$(git tag --list "runtime-v${MAJOR}.${MINOR}.*" \
| sed -E 's/^runtime-v//' \
| grep -E '^[0-9]+\.[0-9]+\.[0-9]+$' \
| sort -V \
| tail -1 || true)
VERSION=$(PYPI_LATEST="$LATEST" TAG_LATEST="$TAG_LATEST" python - <<'PY'
import os
def parse(v):
return tuple(int(part) for part in v.split("."))
pypi = os.environ["PYPI_LATEST"]
tag = os.environ.get("TAG_LATEST") or pypi
base = max(parse(pypi), parse(tag))
print(f"{base[0]}.{base[1]}.{base[2] + 1}")
PY
)
echo "PyPI latest=$LATEST, latest runtime tag=${TAG_LATEST:-none} -> next=$VERSION"
if ! echo "$VERSION" | grep -qE '^[0-9]+\.[0-9]+\.[0-9]+$'; then
echo "::error::computed version $VERSION does not match PEP 440 X.Y.Z"
exit 1
@@ -81,11 +81,11 @@ func TestPositiveMatches(t *testing.T) {
fixture string
expectedName string
}{
{"ghp_EXAMPLE111122223333444455556666777788889999", "github-pat-classic"},
{"ghs_EXAMPLE111122223333444455556666777788889999", "github-app-installation-token"},
{"gho_EXAMPLE111122223333444455556666777788889999", "github-oauth-user-to-server"},
{"ghu_EXAMPLE111122223333444455556666777788889999", "github-oauth-user"},
{"ghr_EXAMPLE111122223333444455556666777788889999", "github-oauth-refresh"},
{"ghp_" + "EXAMPLE111122223333444455556666777788889999", "github-pat-classic"},
{"ghs_" + "EXAMPLE111122223333444455556666777788889999", "github-app-installation-token"},
{"gho_" + "EXAMPLE111122223333444455556666777788889999", "github-oauth-user-to-server"},
{"ghu_" + "EXAMPLE111122223333444455556666777788889999", "github-oauth-user"},
{"ghr_" + "EXAMPLE111122223333444455556666777788889999", "github-oauth-refresh"},
{"github_pat_EXAMPLE" + strings.Repeat("1", 80), "github-pat-fine-grained"},
{"sk-ant-EXAMPLE" + strings.Repeat("1", 40), "anthropic-api-key"},
{"sk-proj-EXAMPLE" + strings.Repeat("1", 40), "openai-project-key"},
@@ -156,7 +156,7 @@ func TestNegativeShapes(t *testing.T) {
// makes ScanString do its own thing (e.g. accidentally normalise
// case) would diverge silently.
func TestScanString_NoOp(t *testing.T) {
in := "ghp_EXAMPLE111122223333444455556666777788889999"
in := "ghp_" + "EXAMPLE111122223333444455556666777788889999"
m1, err1 := ScanBytes([]byte(in))
if err1 != nil {
t.Fatalf("ScanBytes errored: %v", err1)