Commit Graph

4 Commits

Author SHA1 Message Date
steve 084ddd56ba ci: force bash as default shell in container jobs
CI / Test (rest) (pull_request) Failing after 56s
CI / Test (store) (pull_request) Successful in 37s
CI / Lint (pull_request) Successful in 17s
CI / Test (server-http) (pull_request) Successful in 2m0s
CI / Build (windows/amd64) (pull_request) Successful in 26s
CI / Build (linux/amd64) (pull_request) Successful in 28s
CI / Build (linux/arm64) (pull_request) Successful in 26s
e2e / Playwright vs docker-compose (pull_request) Failing after 3m47s
When jobs run with `container:` set, Gitea Actions defaults to
`sh -e` (dash on Ubuntu), so `set -euo pipefail` fails with
"Illegal option -o pipefail". Pinning bash workflow-wide
matches what the runner used pre-container and keeps existing
scripts portable.
2026-05-08 21:10:33 +01:00
steve dedc653256 ci: run jobs in ci-runner-go container
CI / Test (rest) (pull_request) Failing after 40s
CI / Test (store) (pull_request) Failing after 40s
CI / Lint (pull_request) Successful in 21s
CI / Build (windows/amd64) (pull_request) Successful in 26s
CI / Test (server-http) (pull_request) Failing after 1m19s
CI / Build (linux/amd64) (pull_request) Successful in 27s
CI / Build (linux/arm64) (pull_request) Successful in 27s
e2e / Playwright vs docker-compose (pull_request) Failing after 5m18s
Pin every job to gitea.dcglab.co.uk/steve/ci-runner-go:2026-05-08
so Go, Node, and Docker tooling are already installed when the
job starts. Drops three actions/setup-go invocations from ci.yml
(redundant — Go is on PATH) and inherits Buildx + Compose v2 in
e2e.yml and release.yml without per-job apt-installs.

Recipe lives in steve/ci. Bump the date pin in lockstep across
the three workflows when picking up a fresher image (e.g. when
the Go floor moves).
2026-05-08 21:06:38 +01:00
steve c32acc0332 ci(release): use DEV_TOKEN for registry login
Release / Build + push image (push) Successful in 6m58s
The auto-issued GITHUB_TOKEN lacks write:package scope on this Gitea
instance, so the v0.9.0 tag build failed at docker login. Switch to
the user-level DEV_TOKEN secret which has the correct scope.
2026-05-06 19:05:54 +01:00
steve 7cc17813a9 p5-03: docker-only release path (drop goreleaser)
Single public deliverable per tag: a multi-arch server image, with
cross-compiled agent binaries + install scripts + the systemd unit
baked under /opt/restic-manager/dist/. The /agent/binary and
/install/* handlers fall back from <DataDir>/... to that read-only
path so a fresh container Just Works without first-run staging;
operators can still drop a custom build into <DataDir>/ to override
per-host.

Architecture rationale: agent distribution already routes through
the running server, so the release surface mirrors that — there's
no second source of truth to keep in sync.

Workflow .gitea/workflows/release.yml triggers on v*.*.* tag-push
(fan-out :vX.Y.Z / :X.Y / :X, plus :latest once MAJOR>=1) and
workflow_dispatch (snapshot tag only). Pushes to the Gitea
container registry on this instance.

Both binaries grow main.commit + main.date ldflag targets. Makefile
and Dockerfile fill them; release workflow forwards from gitea.sha
plus a UTC timestamp.

Spec : docs/superpowers/specs/2026-05-05-p5-03-docker-only-release.md
Plan : docs/superpowers/plans/2026-05-05-p5-03-docker-only-release.md
2026-05-05 15:18:48 +01:00