name: Raiju CI on: pull_request: push: branches: [main, 'codex/**'] workflow_dispatch: permissions: contents: read concurrency: group: ci-${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: php: name: PHP ${{ matrix.php }} runs-on: ubuntu-24.04 timeout-minutes: 12 strategy: fail-fast: false matrix: php: ['8.1', '8.4', '8.5'] steps: - uses: actions/checkout@v4 - uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} extensions: curl, dom, fileinfo, gd, mbstring, zip coverage: none - uses: actions/setup-node@v4 with: node-version: '22' - run: python3 tests/run-smoke.py apache: name: Apache routing / PHP-FPM runs-on: ubuntu-24.04 timeout-minutes: 12 steps: - uses: actions/checkout@v4 - name: Install Apache and PHP-FPM run: | sudo apt-get update sudo apt-get install -y apache2 php8.3-cli php8.3-fpm php8.3-curl php8.3-gd php8.3-mbstring php8.3-xml php8.3-zip - name: Check real .htaccess routing in an isolated installation env: HTTPD: /usr/sbin/apache2 PHP_FPM: /usr/sbin/php-fpm8.3 HTTPD_MODULE_DIR: /usr/lib/apache2/modules run: python3 tests/routing-smoke.py --apache - name: Check the security self-check behind an nginx-like static-file proxy env: HTTPD: /usr/sbin/apache2 PHP_FPM: /usr/sbin/php-fpm8.3 HTTPD_MODULE_DIR: /usr/lib/apache2/modules run: python3 tests/security-check-smoke.py --apache chromium: name: Chromium runs-on: ubuntu-24.04 timeout-minutes: 12 steps: - uses: actions/checkout@v4 - uses: shivammathur/setup-php@v2 with: php-version: '8.5' extensions: curl, dom, fileinfo, gd, mbstring, zip coverage: none - uses: actions/setup-node@v4 with: node-version: '22' - run: npm ci --prefix tests - run: tests/node_modules/.bin/playwright install --with-deps chromium - run: python3 tests/browser-check.py - run: python3 tests/browser-check.py responsive-check.js - run: python3 tests/browser-check.py revision-check.js - run: python3 tests/agent-browser-check.py - run: python3 tests/page-list-browser-check.py - uses: actions/upload-artifact@v4 if: always() with: name: browser-evidence path: /tmp/raiju-browser-evidence-* retention-days: 7