Skip to content

Update container-table.svelte #7

Update container-table.svelte

Update container-table.svelte #7

Workflow file for this run

name: Playwright E2E Tests
on:
push:
branches: [main]
paths-ignore:
- "**.md"
pull_request:
branches: [main]
paths-ignore:
- "**.md"
permissions:
contents: read
actions: read
checks: write
pull-requests: write
id-token: write
concurrency:
group: "${{ github.workflow }}-${{ (github.event_name == 'pull_request' && github.event.pull_request.number) || github.ref }}"
cancel-in-progress: true
jobs:
build:
name: E2E Tests - Build Image
if: ${{ github.event_name != 'pull_request' || github.head_ref != 'l10n_crowdin' }}
timeout-minutes: 20
permissions:
contents: read
actions: write
id-token: write
runs-on: depot-ubuntu-24.04-16
steps:
- uses: actions/checkout@v6
- name: Set up Depot CLI
uses: depot/setup-action@v1
- name: Build Arcane image for Playwright
uses: depot/build-push-action@v1
with:
context: .
file: docker/Dockerfile
load: true
tags: arcane:playwright-tests
build-args: |
BUILD_TAGS=playwright
provenance: true
sbom: true
- name: Export image to tarball
run: docker save arcane:playwright-tests -o /tmp/arcane-image.tar
- name: Upload Docker image artifact
uses: actions/upload-artifact@v5
with:
name: arcane-image
path: /tmp/arcane-image.tar
retention-days: 1
test:
if: ${{ github.event_name != 'pull_request' || github.head_ref != 'l10n_crowdin' }}
permissions:
contents: read
actions: write
runs-on: depot-ubuntu-24.04-16
needs: build
strategy:
fail-fast: false
matrix:
database:
- name: sqlite
compose_file: setup/compose.yaml
port: 3000
- name: postgres
compose_file: setup/compose-postgres.yaml
port: 3001
- name: proxy
compose_file: setup/compose-proxy.yaml
port: 3002
name: E2E Tests (${{ matrix.database.name }})
steps:
- uses: actions/checkout@v6
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 25
cache: pnpm
- name: Cache Playwright Browsers
uses: actions/cache@v4
id: playwright-cache
with:
path: ~/.cache/ms-playwright
key: ${{ runner.os }}-playwright-${{ hashFiles('tests/pnpm-lock.yaml', 'tests/package.json') }}
restore-keys: |
${{ runner.os }}-playwright-
- name: Create Docker Test Resources
run: |
docker volume create my-app-data || true
docker volume create cache || true
docker network create my-test-network || true
- name: Download Arcane Docker image artifact
uses: actions/download-artifact@v6
with:
name: arcane-image
path: /tmp
- name: Load Arcane Docker image
run: docker load -i /tmp/arcane-image.tar
- name: Pull and save test images
run: |
docker pull ghcr.io/linuxserver/nginx:latest
docker pull ghcr.io/linuxserver/radarr:nightly
docker save ghcr.io/linuxserver/nginx:latest ghcr.io/linuxserver/radarr:nightly > /tmp/test-images.tar
- name: Install test dependencies
run: pnpm --filter arcane-tests install
- name: Install Playwright Browsers
working-directory: ./tests
run: pnpm exec playwright install --with-deps chromium
- name: Run Playwright E2E tests
run: pnpm --filter arcane-tests test
env:
COMPOSE_FILE: ${{ matrix.database.compose_file }}
BASE_URL: http://localhost:${{ matrix.database.port }}
- name: Upload Playwright HTML report
if: always()
uses: actions/upload-artifact@v5
with:
name: playwright-report-${{ matrix.database.name }}
path: tests/.report
include-hidden-files: true
retention-days: 15