Skip to content

Publish runtime Docker images independently of release approvals - #3044

Open
UnArbosFive wants to merge 1 commit into
mainfrom
fix/onchain-runtime-docker
Open

Publish runtime Docker images independently of release approvals#3044
UnArbosFive wants to merge 1 commit into
mainfrom
fix/onchain-runtime-docker

Conversation

@UnArbosFive

Copy link
Copy Markdown
Contributor

Summary

  • add an ungated watcher that polls finalized mainnet every ten minutes and publishes the matching production node image
  • verify the immutable release tag against main and the trusted release-train artifact against the finalized on-chain runtime hash before granting package write access
  • treat GHCR annotations on both vN and latest as terminal publication state
  • call the Docker workflow directly as a reusable workflow, avoiding bot-triggered dispatch startup failures
  • leave GitHub release, PyPI, crates.io, website publication, and their protected mainnet environment unchanged

Root cause

watch-mainnet-release.yml serialized Docker behind a protected-environment release job. A waiting approval held the workflow-wide concurrency lock, preventing the watcher from observing newer on-chain runtimes. Its downstream Docker dispatches also consistently ended in startup_failure when triggered by github-actions[bot].

Verification

  • .github/scripts/test-check-release-node-image.sh
  • bash -n .github/scripts/check-release-node-image.sh .github/scripts/test-check-release-node-image.sh
  • actionlint on all three edited workflows
  • python3 .github/scripts/test_prepare_sdk_dist.py
  • live read-only reproduction against finalized runtime 443: missing GHCR identity detected and release-train artifact 8904435798 verified against the on-chain code hash
  • git diff --check

@vercel

vercel Bot commented Aug 4, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
subtensor Ready Ready Preview Aug 4, 2026 10:34pm

Request Review

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

🛡️ AI Review — Skeptic (security review)

VERDICT: SAFE

VERY HIGH account-age/public-repo scrutiny, mitigated by repository admin permission and substantial merged history; no Gittensor association or commit-author mismatch; fix/onchain-runtime-docker -> main.

Findings

No findings.

Conclusion

The package-write path is constrained to a validated release-train commit whose runtime artifact matches finalized on-chain bytes, and no security vulnerability or malicious behavior was found.


🔍 AI Review — Auditor (domain review)

VERDICT: 👎

UNKNOWN Gittensor association; very new account, but repository admin permission and substantial merged contribution history support established-contributor calibration.

The new watcher correctly decouples production-image publication from protected release approvals, but it drops the existing release-tag publication path for the localnet image. PRs #2994 and #2995 only overlap incidentally with the release workflow and are not duplicate implementations.

Findings

Sev File Finding
MEDIUM .github/workflows/watch-mainnet-release.yml:350 Preserve release-tag publication of the localnet image inline

Conclusion

The production-image reconciliation is well constrained, but removing the only reliable docker-localnet.yml dispatch creates a release-publication regression. Restore equivalent localnet publication before merge.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI review — see the sticky summary comment for the verdict and the inline comments below for specific findings.

Comment on lines -344 to -350
run: |
tag="v${{ needs.check.outputs.spec_version }}"
gh workflow run docker.yml \
--repo "$GITHUB_REPOSITORY" --ref "$tag" -f tag="$tag"
gh workflow run docker-localnet.yml \
--repo "$GITHUB_REPOSITORY" --ref "$tag" -f branch-or-tag="$tag"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[MEDIUM] Preserve release-tag publication of the localnet image

This removes both Docker dispatches, but watch-mainnet-docker.yml replaces only docker.yml. The deleted comment documents that GitHub releases created with GITHUB_TOKEN do not trigger either workflow's release event, so docker-localnet.yml now has no reliable path to publish the finalized vN image. Add an equivalent reusable-workflow call or an independent reconciler for the localnet image before deleting this dispatch.

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

🔄 AI review updated — Skeptic: SAFE Auditor: 👎

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