server: selfupdate must normalize namespaced tags; build-status: pipeline green
server-test / test (push) Successful in 24s
server-test / test (push) Successful in 24s
Release tags are server-v1.2.3 but binaries are stamped v1.2.3 — the raw comparison would re-download the current version on every check. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
ebcb012450
commit
b7658a6777
@@ -159,9 +159,13 @@ Repo pushed to git.rambossek.at/EchoLot/echolot (ssh :2222). Actions runner work
|
|||||||
paths+tags triggers never fire (split into test-server.yml / build-server.yml), and a greedy
|
paths+tags triggers never fire (split into test-server.yml / build-server.yml), and a greedy
|
||||||
`sed` grabbed a nested user id instead of the release id → uploads 404ed (first-match grep now;
|
`sed` grabbed a nested user id instead of the release id → uploads 404ed (first-match grep now;
|
||||||
release creation also falls back to GET-by-tag on re-runs). Binaries verified downloadable →
|
release creation also falls back to GET-by-tag on re-runs). Binaries verified downloadable →
|
||||||
`--self-update` has its artifact source. **Still open: the `image` job** — needs a
|
`--self-update` has its artifact source. **Image job green too** on the dedicated
|
||||||
docker-capable runner (GITHUB_SERVER_URL inside the runner is the internal `http://app:3000`;
|
`compilesau-echolot` runner (label `echolot`): needed a PAT with package read/write as the
|
||||||
set `ECHOLOT_REGISTRY_HOST=git.rambossek.at` as a repo variable/env when enabling it).
|
`REGISTRY_TOKEN` repo secret — the built-in Actions token is rejected by the container
|
||||||
|
registry. `git.rambossek.at/echolot/echolot-server:{v0.1.0,latest}` pulls anonymously
|
||||||
|
(3.9 MB distroless, verified). Full chain proven: tag → tests → binaries → release assets →
|
||||||
|
registry image → anonymous pull. Note the tag convention: image tags carry the bare version
|
||||||
|
(`v0.1.0`), release tags the namespaced one (`server-v0.1.0`); selfupdate normalizes.
|
||||||
|
|
||||||
## Next steps
|
## Next steps
|
||||||
1. Build locally, run on several physical devices (varied Android versions/vendors), collect the
|
1. Build locally, run on several physical devices (varied Android versions/vendors), collect the
|
||||||
|
|||||||
@@ -49,7 +49,11 @@ func Run(api, currentVersion string) error {
|
|||||||
if err := json.NewDecoder(resp.Body).Decode(&rel); err != nil {
|
if err := json.NewDecoder(resp.Body).Decode(&rel); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if rel.TagName == "" || rel.TagName == currentVersion {
|
// Tags are namespaced (server-v1.2.3) but binaries are stamped with the
|
||||||
|
// bare version (v1.2.3) — compare the normalized forms or the updater
|
||||||
|
// would re-download the same version forever.
|
||||||
|
latest := strings.TrimPrefix(rel.TagName, "server-")
|
||||||
|
if rel.TagName == "" || latest == currentVersion {
|
||||||
fmt.Printf("already current (%s)\n", currentVersion)
|
fmt.Printf("already current (%s)\n", currentVersion)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user