Skip to content

feat(eu): complete EU migration content salvage (assets + SSH subdomain) #6166

feat(eu): complete EU migration content salvage (assets + SSH subdomain)

feat(eu): complete EU migration content salvage (assets + SSH subdomain) #6166

Workflow file for this run

name: PR Tests
on:
pull_request:
workflow_dispatch:
concurrency:
group: primary-tests-${{ github.head_ref }}
cancel-in-progress: true
defaults:
run:
working-directory: astro
jobs:
lint:
name: Lint & Format Check
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '22'
cache: 'npm'
cache-dependency-path: astro/package-lock.json
- name: Install dependencies
run: npm ci
- name: Run ESLint
run: npm run lint
- name: Check formatting
run: npm run format:check
metadata-validation:
name: Metadata Validation
runs-on: ubuntu-latest
defaults:
run:
working-directory: .
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Set up uv
uses: astral-sh/setup-uv@v8.3.0
with:
python-version: "3.12"
- name: Validate metadata
run: uv run --python 3.12 --with pykwalify --with pyyaml make validate-metadata
content-lint:
name: Content Lint
runs-on: ubuntu-latest
defaults:
run:
working-directory: .
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '22'
cache: 'npm'
cache-dependency-path: astro/package-lock.json
- name: Lint content
run: cd astro && npm ci && npm run content:lint
unit-tests:
name: Unit Tests
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '22'
cache: 'npm'
cache-dependency-path: astro/package-lock.json
- name: Install dependencies
run: npm ci
- name: Preprocess content
run: npm run preprocess
- name: Run unit tests
run: npm run test:unit
e2e-tests:
name: Playwright Tests
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '22'
cache: 'npm'
cache-dependency-path: astro/package-lock.json
- name: Install dependencies
run: npm ci
- name: Install Playwright browsers
run: npx playwright install --with-deps chromium
- name: Run Playwright tests
run: npm run test
- name: Upload test artifacts
uses: actions/upload-artifact@v7
if: ${{ !cancelled() }}
with:
name: playwright-report
path: astro/playwright-report/
retention-days: 30