name: web-platform-ci on: push: pull_request: permissions: contents: read jobs: decision-protocol: name: Standalone decision service (no cloud credentials) runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v6 - uses: actions/setup-python@v6 with: python-version: '3.12' - run: python -m pip install -r decision_server/requirements.txt - run: python -m unittest discover -s decision_server/tests -v quality: name: TypeScript, lint, unit, build runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v6 - uses: actions/setup-node@v6 with: node-version-file: .nvmrc cache: npm - uses: actions/setup-python@v6 with: python-version: '3.12' cache: pip - run: npm install --global npm@11.17.0 - run: npm ci - run: python -m pip install -r requirements-dev.txt - run: npm run lint:python - run: npm run check e2e: name: Playwright E2E runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v6 - uses: actions/setup-node@v6 with: node-version-file: .nvmrc cache: npm - run: npm install --global npm@11.17.0 - run: npm ci - run: npx playwright install --with-deps chromium - run: npm run build - uses: actions/setup-python@v6 with: python-version: '3.12' - run: python -m pip install -e ./control_bridge - run: npm run test:e2e env: BRIDGE_PYTHON: python3 - uses: actions/upload-artifact@v6 if: failure() with: name: ordinary-e2e-evidence path: test-results/