Skip to content

add-frontend-smoke

add-frontend-smoke #24

Workflow file for this run

name: Integration Tests
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
integration:
runs-on: ubuntu-latest
env:
DOCKER_BUILDKIT: 1
XDG_RUNTIME_DIR: /tmp/podman-run
timeout-minutes: 60
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install podman
run: |
sudo apt-get update
sudo apt-get install -y podman
- name: Start podman socket service
run: |
# Ensure the runtime directory exists and is writable
mkdir -p "$XDG_RUNTIME_DIR/podman"
# Start the rootless podman service socket in the configured runtime dir
podman system service --time=0 unix://$XDG_RUNTIME_DIR/podman/podman.sock >/tmp/podman-service.log 2>&1 &
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Set up uv
uses: astral-sh/setup-uv@v4
with:
python-version: '3.11'
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: npm
cache-dependency-path: frontend/interactEM/package-lock.json
- name: Install frontend dependencies
working-directory: frontend/interactEM
run: npm ci
- name: Install Playwright browsers (with system deps)
working-directory: frontend/interactEM
run: npx playwright install --with-deps
- name: Setup env and run docker compose
run: make setup && make docker-up
- name: Run integration tests
run: make integration-test
- name: Upload Playwright report
if: always()
uses: actions/upload-artifact@v4
with:
name: playwright-report
path: frontend/interactEM/playwright-report
if-no-files-found: ignore
- name: Stop containers
if: always()
run: make docker-down
- name: Show docker compose logs on failure
if: failure()
run: docker compose logs --no-color