ci(component-tests): add containerized component test workflow #14

Merged
Ninosaurier merged 1 commits from fix/ci-runner-test-component into dev 2026-08-04 12:34:04 +00:00
Owner

Description

Context

The self-hosted Gitea Actions runner (act_runner with Docker-in-Docker) had several related problems that made CI jobs fail consistently:

  • Pushing images to our own registry initially failed due to a missing owner organization (ci) and an nginx upload limit that was too low (413 Request Entity Too Large)
  • The CI runner had no credentials configured for the private container registry, causing image pulls to fail with pull access denied
  • The docker-dind sidecar in the runner deployment was unstable (CrashLoopBackOff, cannot ping the docker daemon), and the networking configuration required for Docker-in-Docker (--network host) was not reliably applied by act_runner at the workflow level
  • As a result, component tests (pnpm test:component) never ran successfully on the runner

Solution

  • I allowed to upload bigger size of images.
  • Built and pushed a dedicated CI base image (node22-docker) to the Gitea container registry, including a correct Docker CLI + Compose V2 plugin via Docker's official APT repository
  • Added registry credentials (REGISTRY_USER / REGISTRY_TOKEN) as repository secrets and wired them into all relevant CI jobs via container.credentials
  • Set nginx.ingress.kubernetes.io/proxy-body-size to unlimited to allow large layer uploads to the registry
  • Component tests now run without Docker-in-Docker in the CI job: Dockerfile.test (Playwright-based) is built separately and pushed to the registry as luna-charts-test:v1.62.1; the component-tests job pulls this prebuilt image directly and runs the tests
  • This removes the need for privileged DinD sidecar containers and custom networking workarounds inside the actual test job entirely

Related issues

The following issues were fixed directly as part of this branch (no separate PR was opened per issue):

Changeset

No changeset included — this is a CI/infrastructure-only change with no impact on the published luna-charts package (see CONTRIBUTING.md).

Testing

  • lint-and-format passing
  • changeset-check passing
  • unit-tests passing
  • component-tests passing (Playwright, against luna-charts-test:v1.62.1)

Follow-up

ADM/ADR documentation (Technology Architecture Section 6.6, ADR-0002) will be updated in a separate branch (docs/update-technology-architecture) to reflect the actual CI setup.

## Description ### Context The self-hosted Gitea Actions runner (`act_runner` with Docker-in-Docker) had several related problems that made CI jobs fail consistently: - Pushing images to our own registry initially failed due to a missing owner organization (`ci`) and an nginx upload limit that was too low (`413 Request Entity Too Large`) - The CI runner had no credentials configured for the private container registry, causing image pulls to fail with `pull access denied` - The `docker-dind` sidecar in the runner deployment was unstable (`CrashLoopBackOff`, `cannot ping the docker daemon`), and the networking configuration required for Docker-in-Docker (`--network host`) was not reliably applied by `act_runner` at the workflow level - As a result, component tests (`pnpm test:component`) never ran successfully on the runner ### Solution - I allowed to upload bigger size of images. - Built and pushed a dedicated CI base image (`node22-docker`) to the Gitea container registry, including a correct Docker CLI + Compose V2 plugin via Docker's official APT repository - Added registry credentials (`REGISTRY_USER` / `REGISTRY_TOKEN`) as repository secrets and wired them into all relevant CI jobs via `container.credentials` - Set `nginx.ingress.kubernetes.io/proxy-body-size` to unlimited to allow large layer uploads to the registry - Component tests now run **without** Docker-in-Docker in the CI job: `Dockerfile.test` (Playwright-based) is built separately and pushed to the registry as `luna-charts-test:v1.62.1`; the `component-tests` job pulls this prebuilt image directly and runs the tests - This removes the need for privileged DinD sidecar containers and custom networking workarounds inside the actual test job entirely ### Related issues The following issues were fixed directly as part of this branch (no separate PR was opened per issue): - Closes #1 - Closes #2 - Closes #3 - Closes #4 - Closes #5 - Closes #6 ### Changeset No changeset included — this is a CI/infrastructure-only change with no impact on the published `luna-charts` package (see CONTRIBUTING.md). ### Testing - [x] `lint-and-format` passing - [x] `changeset-check` passing - [x] `unit-tests` passing - [x] `component-tests` passing (Playwright, against `luna-charts-test:v1.62.1`) ### Follow-up ADM/ADR documentation (Technology Architecture Section 6.6, ADR-0002) will be updated in a separate branch (`docs/update-technology-architecture`) to reflect the actual CI setup.
Ninosaurier added this to the v0.1.0 - Phase 1: Groundwork milestone 2026-08-04 11:07:43 +00:00
Ninosaurier added the Status/Needs Review label 2026-08-04 11:07:43 +00:00
Ninosaurier self-assigned this 2026-08-04 11:07:43 +00:00
Ninosaurier added 1 commit 2026-08-04 11:07:43 +00:00
ci(component-tests): add containerized component test workflow
CI / lint-and-format (push) Successful in 35s
CI / changeset-check (push) Successful in 28s
CI / unit-tests (push) Successful in 39s
CI / component-tests (push) Successful in 29s
CI / lint-and-format (pull_request) Successful in 36s
CI / changeset-check (pull_request) Successful in 33s
CI / unit-tests (pull_request) Successful in 37s
CI / component-tests (pull_request) Successful in 29s
caf0f3de2d
Introduce dedicated CI container images and improve the component
test execution in Gitea Actions.

The workflow now uses reproducible runner environments, private
registry authentication and executes Playwright component tests
inside a prepared container.
Ninosaurier merged commit 7559a2725a into dev 2026-08-04 12:34:04 +00:00
Ninosaurier added Status/Verified and removed Status/Needs Review labels 2026-08-04 12:34:32 +00:00
Ninosaurier deleted branch fix/ci-runner-test-component 2026-08-04 13:06:21 +00:00
Sign in to join this conversation.