From a582e8be134f646d299f7fa392883409525d0ed9 Mon Sep 17 00:00:00 2001 From: Kevin Veen-Birkenbach Date: Tue, 23 Dec 2025 20:35:09 +0100 Subject: [PATCH] ci: split reusable workflow into lint + e2e jobs - Run ruff in a dedicated lint job (faster feedback) - Keep e2e separate and install dependencies only there - Force Playwright Chromium install to avoid cache-related missing binaries - Trigger CI on PRs and pushes to main https://chatgpt.com/share/694ae842-1588-800f-9418-31e7d02ac45e --- .github/workflows/ci.yml | 11 ++++---- .github/workflows/reusable-test.yml | 40 ++++++++++++++++++++--------- 2 files changed, 33 insertions(+), 18 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6978283..a4bc940 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,12 +1,11 @@ -name: CI +name: ci on: - push: pull_request: + push: + branches: + - main jobs: - test: + tests: uses: ./.github/workflows/reusable-test.yml - with: - python-version: "3.12" - matomo-token-description: "ci-token" diff --git a/.github/workflows/reusable-test.yml b/.github/workflows/reusable-test.yml index f0d8207..8cf6173 100644 --- a/.github/workflows/reusable-test.yml +++ b/.github/workflows/reusable-test.yml @@ -1,4 +1,4 @@ -name: Reusable Test (ruff + e2e) +name: reusable-test on: workflow_call: @@ -29,10 +29,32 @@ on: default: "ci-token" jobs: - test: + lint: + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: ${{ inputs.python-version }} + cache: "pip" + + - name: Install lint deps + run: | + python -m pip install --upgrade pip + pip install ruff + + - name: Ruff + run: | + ruff check . + ruff format --check . + + e2e: runs-on: ubuntu-latest timeout-minutes: 30 - steps: - name: Checkout uses: actions/checkout@v4 @@ -48,22 +70,16 @@ jobs: sudo apt-get update sudo apt-get install -y curl - - name: Install Python deps + - name: Install Python deps (editable + e2e) run: | python -m pip install --upgrade pip pip install -e ".[e2e]" - pip install ruff - - - name: Ruff - run: | - ruff check . - ruff format --check . - name: Install Playwright Chromium run: | - python -m playwright install --with-deps chromium + python -m playwright install --with-deps --force chromium - - name: E2E (docker compose + installer + tests) + - name: Run E2E (docker compose) env: MATOMO_URL: ${{ inputs.matomo-url }} MATOMO_ADMIN_USER: ${{ inputs.matomo-admin-user }}