Update README with Ralph scripts documentation #1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: PHPUnit Tests | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - develop | |
| pull_request: | |
| branches: | |
| - main | |
| - develop | |
| jobs: | |
| phpunit: | |
| name: PHP ${{ matrix.php }} / WP ${{ matrix.wp }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| php: ['8.1', '8.2', '8.3'] | |
| wp: ['6.6', '6.7', 'latest'] | |
| exclude: | |
| - php: '8.3' | |
| wp: '6.6' | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: ${{ matrix.php }} | |
| extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, mysql, mysqli, pdo_mysql, bcmath, soap, intl, gd, exif, iconv | |
| coverage: none | |
| - name: Get Composer cache directory | |
| id: composer-cache | |
| run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
| - name: Cache Composer dependencies | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.composer-cache.outputs.dir }} | |
| key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-composer- | |
| - name: Install Composer dependencies | |
| run: | | |
| cd sample-plugin | |
| composer install --prefer-dist --no-progress | |
| - name: Install npm dependencies | |
| run: npm ci | |
| - name: Update wp-env for WordPress version | |
| run: | | |
| if [ "${{ matrix.wp }}" != "latest" ]; then | |
| node -e " | |
| const fs = require('fs'); | |
| const config = JSON.parse(fs.readFileSync('.wp-env.json', 'utf8')); | |
| config.core = 'WordPress/WordPress#${{ matrix.wp }}'; | |
| config.env.tests.core = 'WordPress/WordPress#${{ matrix.wp }}'; | |
| fs.writeFileSync('.wp-env.json', JSON.stringify(config, null, 2)); | |
| " | |
| fi | |
| - name: Start wp-env | |
| run: npx wp-env start | |
| - name: Run PHPUnit tests | |
| run: | | |
| npx wp-env run tests-cli --env-cwd=wp-content/plugins/sample-plugin vendor/bin/phpunit --testdox | |
| - name: Stop wp-env | |
| if: always() | |
| run: npx wp-env stop | |
| phpcs: | |
| name: PHP CodeSniffer | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: '8.2' | |
| tools: cs2pr | |
| - name: Get Composer cache directory | |
| id: composer-cache | |
| run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
| - name: Cache Composer dependencies | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.composer-cache.outputs.dir }} | |
| key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-composer- | |
| - name: Install Composer dependencies | |
| run: | | |
| cd sample-plugin | |
| composer install --prefer-dist --no-progress | |
| - name: Run PHPCS | |
| run: | | |
| cd sample-plugin | |
| composer lint -- --report=checkstyle | cs2pr |