DinD is required for testcontainers but breaks apt-based --with-deps;
install chromium only after the daemon is ready.
Co-authored-by: Cursor <cursoragent@cursor.com>
Drop DinD service (breaks apt/playwright in the job container) and the
workflow env overrides that masked the e2e script config. Default Ryuk
disabled in e2e.sh for CI friendliness.
Co-authored-by: Cursor <cursoragent@cursor.com>
The --with-deps flag fails in the DinD job container; install Ubuntu
packages explicitly and download chromium from the e2e module context.
Co-authored-by: Cursor <cursoragent@cursor.com>
Mounting the host socket via container options is blocked by the runner,
so run a dind service and point DOCKER_HOST at it instead.
Co-authored-by: Cursor <cursoragent@cursor.com>
The e2e job runs testcontainers inside a ci-base container, which needs
the host Docker socket mounted. Also preserve TESTCONTAINERS_RYUK_DISABLED
from CI env and wait for archive UI before asserting in archive tests.
Co-authored-by: Cursor <cursoragent@cursor.com>
Bump ci-base to 1.1.0 and actions to v7, add Docker buildx setup for
releases, restore dockers_v2 for multi-arch images, and set testcontainers
env vars on the e2e job.
Co-authored-by: Cursor <cursoragent@cursor.com>
The test web server and Hako container previously ran on isolated Docker
networks, so Hako could not fetch URLs like http://localhost:32865 (the
host-mapped port) from inside its container. Most tests passed vacuously
because they only checked DOM containers; the Archive tests failed
because they tried to click an actual link item that was never created.
Changes:
- Add a shared Docker network so both containers can communicate by alias
- Test web server registers as hako-testserver and returns that as its URL
- Hako container joins the same network and can resolve the alias
- CreateLink now navigates to /home before each call so it can be invoked
multiple times in a row (the form redirects to /links after submission)
- IsVisible uses .First() to avoid Playwright strict-mode errors when a
selector matches multiple elements
- Archive tests use .link-item instead of the never-matching
a[href*='/links/'] selector
- Bump Dockerfile.e2e Alpine to 3.23 to match the production Containerfile
Replace Woodpecker CI pipelines with GitHub/Forgejo Actions workflows
using the ci-base:1.0.0 image. Simplify Makefile by removing unused
variables and adopting a cleaner help target. Switch goreleaser from
dockers_v2 to dockers + docker_manifests for per-arch image builds.
Update Containerfile to Alpine 3.23 and fix nfpm description.