From caf0f3de2d6a69c2299eef9bbbd2602db6afaff0 Mon Sep 17 00:00:00 2001 From: Ninosaurier Date: Mon, 3 Aug 2026 22:18:14 +0200 Subject: [PATCH] ci(component-tests): add containerized component test workflow 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. --- .gitea/runners/Dockerfile | 18 +++++++++++++ .gitea/workflows/quality-gate.yml | 44 ++++++++++++++++++------------- 2 files changed, 43 insertions(+), 19 deletions(-) create mode 100644 .gitea/runners/Dockerfile diff --git a/.gitea/runners/Dockerfile b/.gitea/runners/Dockerfile new file mode 100644 index 0000000..30354bd --- /dev/null +++ b/.gitea/runners/Dockerfile @@ -0,0 +1,18 @@ +FROM node:22-bullseye + +# Install Docker CLI + Compose V2 plugin from Docker's official apt repo +# (Debian's own docker.io package ships an outdated Docker version and +# does not include the compose plugin at all). +RUN apt-get update \ + && apt-get install -y ca-certificates curl gnupg \ + && install -m 0755 -d /etc/apt/keyrings \ + && curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc \ + && chmod a+r /etc/apt/keyrings/docker.asc \ + && echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian bullseye stable" \ + | tee /etc/apt/sources.list.d/docker.list > /dev/null \ + && apt-get update \ + && apt-get install -y docker-ce-cli docker-compose-plugin \ + && rm -rf /var/lib/apt/lists/* + +RUN corepack enable \ No newline at end of file diff --git a/.gitea/workflows/quality-gate.yml b/.gitea/workflows/quality-gate.yml index 398408d..27e3eec 100644 --- a/.gitea/workflows/quality-gate.yml +++ b/.gitea/workflows/quality-gate.yml @@ -10,13 +10,14 @@ on: jobs: lint-and-format: runs-on: ubuntu-docker-dind + container: + image: git.byting-pandas.ninja/ci/node22-docker:latest + credentials: + username: ${{ secrets.REGISTRY_USER }} + password: ${{ secrets.REGISTRY_TOKEN }} steps: - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "22" - - run: corepack enable - run: corepack prepare pnpm@11.11.0 --activate @@ -30,15 +31,16 @@ jobs: changeset-check: runs-on: ubuntu-docker-dind + container: + image: git.byting-pandas.ninja/ci/node22-docker:latest + credentials: + username: ${{ secrets.REGISTRY_USER }} + password: ${{ secrets.REGISTRY_TOKEN }} steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - - uses: actions/setup-node@v4 - with: - node-version: "22" - - run: corepack enable - run: corepack prepare pnpm@11.11.0 --activate @@ -50,13 +52,14 @@ jobs: unit-tests: runs-on: ubuntu-docker-dind + container: + image: git.byting-pandas.ninja/ci/node22-docker:latest + credentials: + username: ${{ secrets.REGISTRY_USER }} + password: ${{ secrets.REGISTRY_TOKEN }} steps: - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "22" - - run: corepack enable - run: corepack prepare pnpm@11.11.0 --activate @@ -67,18 +70,21 @@ jobs: component-tests: runs-on: ubuntu-docker-dind + container: + image: git.byting-pandas.ninja/ci/luna-charts-test:v1.62.1 + credentials: + username: ${{ secrets.REGISTRY_USER }} + password: ${{ secrets.REGISTRY_TOKEN }} + steps: - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "22" - - run: corepack enable + - run: corepack prepare pnpm@11.11.0 --activate - run: pnpm install --frozen-lockfile - # ======================================================== - - name: Run component tests (Docker) - run: pnpm test:component + - name: Run component tests (Playwright) + working-directory: packages/luna-charts + run: pnpm test:browser \ No newline at end of file