CD: tagged releases as Defold library dependency #13
Labels
No labels
area:defold
area:docs
area:infra
area:protocol
area:testing
kind:bug
kind:chore
phase:breadth
phase:core
phase:hardening
phase:slice
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
yuris/spacetimedb-defold#13
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?
Defold consumes libraries by URL pointing at a git ref, so "CD" here is release hygiene, not a deploy pipeline.
v0.1.0) and what constitutes a releasable state (green CI + vertical slice playable)https://git.nokopia.com/yuris/spacetimedb-defold/archive/v0.1.0.zipas a dependency andrequire("stdb")Blocked on #2 — nothing worth tagging until the vertical slice runs.
Closed in
394c228+8768170. v0.1.0 is published.Forgejo serves
/archive/<tag>.zipfor any tag, with or without a release object, so CD is just "push a tag"..forgejo/workflows/release.ymlpublishes the notes and gives the tag a page — curl-only, no nix, no toolchain, so it does not inherit the runner problems in #7.Verified by actually consuming it
Not "the zip exists" — a separate project with no local copy of
stdb/anywhere, resolved withbob resolve, bundled headless, run in a real engine:Two findings, both now in the README
1. Forgejo refuses basic auth for archive downloads. bob only speaks
https://user:token@host/..., and gets a flat 404. Measured against the private repo:-u user:token(basic)https://user:token@host/…Authorization: token …header?token=…query paramSo a private Forgejo library URL needs the token as a query parameter — the same shape Defold documents for GitLab. This is the one that would have silently blocked anyone trying to use a private repo.
2. Defold does not resolve dependencies transitively. A consumer listing only this SDK compiles fine and then fails at
connect. Confirmed the failure is actionable rather than a nil deref, by building exactly that project:Two bugs in the first release run, caught by reading the output
actions/checkoutmaterialises a lightweight tag, sogit tag --format='%(contents:body)'silently falls back to the commit. Now read from/api/v1/repos/<repo>/tags/<tag>, and the checkout step is gone entirely.github.server_urlis the runner's internal address (http://<forgejo-host>:5858), so the published dependency URL pointed somewhere no user can reach. Public host hardcoded.Re-tagged and re-ran to confirm both fixes landed in the actual release body.