mirror of
https://github.com/Comfy-Org/ComfyUI-Standalone-Environments.git
synced 2026-11-04 23:47:22 +00:00
[PR #12] [MERGED] Add local build/serve tooling to test environments without publishing #15
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Comfy-Org/ComfyUI-Standalone-Environments#15
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/Comfy-Org/ComfyUI-Standalone-Environments/pull/12
Author: @Kosinkadink
Created: 7/26/2026
Status: ✅ Merged
Merged: 7/27/2026
Merged by: @Kosinkadink
Base:
main← Head:feat/local-build-tooling📝 Commits (3)
655a7b5Add local build/serve tooling to test environments without publishingb4e3703Merge remote-tracking branch 'origin/main' into feat/local-build-toolingb6e4121Sync local tooling with post-ROCm-7.14 matrix: no python_version overrides📊 Changes
6 files changed (+857 additions, -0 deletions)
View changed files
➕
.github/workflows/test-local-tooling.yml(+41 -0)📝
.gitignore(+4 -0)📝
README.md(+37 -0)➕
scripts/build_local.py(+362 -0)➕
scripts/serve_local.py(+163 -0)➕
scripts/test_local_tooling.py(+250 -0)📄 Description
Summary
Developer tooling to build and test standalone-environment artifacts locally, without publishing anything. Pairs with the dev-only
COMFY_STANDALONE_BASE_URLoverride in Comfy-Org/Comfy-Desktop#1248 (honored only by unpackagedpnpm devbuilds).scripts/build_local.pyreproduces theBuild Standalone Environmentworkflow for one host-native variant: same PBS Python (incl. the win-amd 3.12 matrix override), requirements concatenation, uv bundling, strip step, smoke test, manifest shape, and exact 7z parameters. Output lands indist/<variant>/<tag>/.scripts/serve_local.pygenerates the R2 URL layout (latest.json,<variant>/releases.json,<variant>/<tag>/<file>, plus the working-treetorch-index-stacks.json) and serves it on loopback (127.0.0.1) only. Entries are checked against the same allowlists the desktop'sr2Catalogvalidator enforces, so a bad tag fails here instead of silently vanishing from the install wizard.scripts/test_local_tooling.py(20 tests, no network): metadata generation, validator-rejection behavior, and CI-parity contract tests that fail whenbuild-standalone-env.ymlchanges (python/PBS versions, matrix ids, vendor requirements, per-variant python overrides, 7z args) without updating the tooling. Newtest-local-tooling.ymlworkflow runs them on relevant path changes.Safety
<ref>-local1and unsafe tags (e.g. branch refs with/, traversal) are rejected before the multi-GB build starts.Workflow
Testing
python -m unittest scripts.test_local_tooling -v- 20/20 passpython -m unittest scripts.test_torch_index_scripts- unaffected, still green🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.