Skip to content

Integrations improvements and disable tags #466

Integrations improvements and disable tags

Integrations improvements and disable tags #466

name: UI v2 Integration CI
# Run whenever server or UI code changes — integration tests exercise the full
# stack (real Conductor backend + UI), so they are relevant for both.
# conductor-clients changes don't affect the server or UI at runtime.
on:
pull_request:
branches:
- main
paths-ignore:
- "conductor-clients/**"
push:
branches:
- main
paths-ignore:
- "conductor-clients/**"
permissions:
contents: read
jobs:
e2e-integration:
name: E2E (Integration)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Free disk space
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf /usr/local/lib/android
sudo rm -rf /opt/ghc
sudo rm -rf /usr/local/share/boost
sudo apt-get clean
- name: Setup pnpm
uses: pnpm/action-setup@v5
with:
version: 10.32.0
# setup-node must come after pnpm/action-setup so it can locate the store.
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 22
cache: pnpm
cache-dependency-path: ui-next/pnpm-lock.yaml
- name: Install dependencies
run: pnpm install --frozen-lockfile
working-directory: ui-next
- name: Cache Playwright browsers
id: playwright-cache
uses: actions/cache@v4
with:
path: ~/.cache/ms-playwright
key: ${{ runner.os }}-playwright-chromium-${{ hashFiles('ui-next/pnpm-lock.yaml') }}
- name: Install Playwright browsers
if: steps.playwright-cache.outputs.cache-hit != 'true'
run: pnpm exec playwright install chromium
working-directory: ui-next
# OS-level dependencies (apt packages) cannot be cached — always install.
- name: Install Playwright OS dependencies
run: pnpm exec playwright install-deps chromium
working-directory: ui-next
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Cache Docker layers for conductor:server
uses: actions/cache@v4
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-conductor-server-${{ hashFiles('docker/server/Dockerfile', '**/build.gradle', 'settings.gradle') }}
restore-keys: ${{ runner.os }}-conductor-server-
- name: Build conductor:server Docker image
uses: docker/build-push-action@v6
with:
context: .
file: docker/server/Dockerfile
tags: conductor:server
load: true
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=min
- name: Move Docker layer cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
- name: Run integration E2E tests
run: pnpm test:e2e:integration
working-directory: ui-next
- name: Upload Playwright integration report
uses: actions/upload-artifact@v4
if: failure()
with:
name: playwright-integration-report
path: ui-next/playwright-integration-report/
retention-days: 7