Files
shopdb-flask/docs/DEV-BUILD-TEST.md
cproudlock 2e42972f44 Map the image channels to how this repo ships, and disarm auto-publish
The channel work assumed the branch model it was written against: upstream,
main is a release branch and dev-be is the trunk. Neither holds here. main IS
our trunk - 212 commits past v0.11.3 - and a release is a tag (ADR-007). dev-be
does not exist at all, so the edge half would never have fired and the launchers
would have cloned a missing branch.

Taken literally it would have published our unreleased trunk to every site as
:stable, which is the opposite of what the word promises to someone who has no
way to check.

Remapped throughout:

  tag v*  -> :stable   the thing that was actually released
  main    -> :edge     the trunk, DEV badge lit

publish-images.yml keys the channel on github.ref_type = tag rather than on a
branch name, so the mapping cannot silently drift back. Start-ShopDBDev.ps1,
dev-bootstrap.ps1 and build-channel-installer.ps1 resolve stable to the newest
v* tag via git ls-remote --sort=-v:refname, warning and falling back to main if
a repo has no tags yet. DEV-BUILD-TEST.md follows.

The push: trigger is commented out. Automatic publishing waits on someone
confirming the GHCR package exists under this owner and deciding who may pull
it; workflow_dispatch works meanwhile. Turning it on is one uncomment.

All three scripts parse clean under pwsh, and the tag-selection expression was
run against this repo rather than eyeballed. Per the standing rule, the runtime
paths still want a pass in the win11 VM before anyone leans on them.

Scope: product
2026-09-02 14:16:24 -04:00

1.9 KiB

ShopDB dev build - quick test

Two dev builds you can stand up on a Windows box with Docker Desktop. You run one PowerShell script: it checks your dependencies (offers to winget-install anything missing), then PULLS a prebuilt image from GHCR and starts the stack in Docker. Nothing is compiled on your machine - no Node, no npm, no source build - so it works on a box that has only Docker installed.

What you need

  • Windows with Docker Desktop running.
  • Git for Windows (winget install Git.Git).
  • A GitHub login for this private repo/registry already stored on the box. If you have cloned this repo before, or signed in to GitHub in Visual Studio or VS Code, you already have it - the script uses that stored credential automatically. If Docker cannot pull the image, sign in once with docker login ghcr.io (use a GitHub username and a personal access token that has read:packages), then re-run the launcher.

Get the launcher

You will be sent Start-ShopDBDev.ps1 directly. Save it anywhere (for example your Downloads folder) and open PowerShell in that folder.

Bleeding edge (main, the trunk)

powershell -ExecutionPolicy Bypass -File .\Start-ShopDBDev.ps1 -Channel edge

Comes up at https://localhost:5011. Red DEV badge in the sidebar. Pulls the edge image.

Stable (newest release tag)

powershell -ExecutionPolicy Bypass -File .\Start-ShopDBDev.ps1 -Channel stable

Comes up at https://localhost:5001. No DEV badge. Pulls the stable image.

Notes

  • Both stacks can run at the same time - they use different ports and separate Docker volumes, so they do not collide and each keeps its own database.
  • Each launch pulls the latest image for the channel, so re-running the launcher is how you pick up a new build. No local rebuild step.
  • First page load shows a self-signed cert warning (expected for a dev box).
  • Stop a stack: docker compose -p shopdb-stable down (or shopdb-edge).