name: CI on: pull_request: push: branches: [main] permissions: contents: read jobs: backend: runs-on: ubuntu-latest defaults: run: working-directory: backend steps: - uses: actions/checkout@v4 - uses: shivammathur/setup-php@v2 with: php-version: '8.2' extensions: mbstring, pdo_sqlite, pdo_mysql coverage: none - run: composer install --no-interaction --prefer-dist --no-progress - run: composer validate --strict --no-check-publish - run: vendor/bin/pint --test - run: php artisan test frontend: runs-on: ubuntu-latest defaults: run: working-directory: frontend steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: '24' cache: npm cache-dependency-path: frontend/package-lock.json - run: npm ci - run: npx oxlint src - run: npm run build - run: npx playwright install --with-deps chromium - run: npm run test:e2e dependency-audit: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: shivammathur/setup-php@v2 with: php-version: '8.2' - uses: actions/setup-node@v4 with: node-version: '24' cache: npm cache-dependency-path: frontend/package-lock.json - run: composer audit --locked --working-dir=backend - run: npm audit --prefix frontend --audit-level=high