Skip to content

Restore run() method #63

Restore run() method

Restore run() method #63

Workflow file for this run

name: CI for Plugin Boilerplate
on: [push]
jobs:
lint:
name: Lint and code standards
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@master
- name: Validate composer.json and composer.lock
run: composer validate
- name: Setup PHP 8.2
uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
coverage: none
extensions: mbstring # Just enough to keep phpunit happy when installing Composer dependencies.
- name: Install dependencies
run: composer install --prefer-dist --no-progress --no-suggest
# Needed as runs-on: system doesn't have xml-lint by default.
- name: Lint .phpcs.xml.dist
uses: ChristophWurst/xmllint-action@v1
with:
xml-file: ./.phpcs.xml.dist
xml-schema-file: ./vendor/squizlabs/php_codesniffer/phpcs.xsd
# Needed as runs-on: system doesn't have xml-lint by default.
- name: Lint phpunit.xml.dist
uses: ChristophWurst/xmllint-action@v1
with:
xml-file: ./phpunit.xml.dist
xml-schema-file: ./vendor/phpunit/phpunit/phpunit.xsd
- name: Lint PHP files
run: bin/php-lint
- name: Run PHPCS
run: composer cs
supported-php-versions:
name: Determine Supported PHP Versions
runs-on: ubuntu-latest
outputs:
extensions: ${{ steps.supported-versions-matrix.outputs.extensions }}
version: ${{ steps.supported-versions-matrix.outputs.version }}
steps:
- uses: actions/checkout@v4
- id: supported-versions-matrix
uses: WyriHaximus/github-action-composer-php-versions-in-range@v1
test:
name: Unit and Integration tests
needs:
- supported-php-versions
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php: ${{ fromJson(needs.supported-php-versions.outputs.version) }}
wordpress: [ 'latest' ]
include:
- php: '8.3'
wordpress: 'trunk'
experimental: true
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
php-version: ${{ matrix.php }}
coverage: pcov
# https://make.wordpress.org/hosting/handbook/handbook/server-environment/#php-extensions
extensions: curl, dom, exif, fileinfo, hash, json, mbstring, mysqli, libsodium, openssl, pcre, imagick, xml, zip
- name: Install dependencies
run: |
composer install --prefer-dist --no-progress --no-suggest
# composer require pcov/clobber --dev
# vendor/bin/pcov clobber
# See see https://dev.to/swashata/setup-php-pcov-for-5-times-faster-phpunit-code-coverage-3d9c
- name: Setup Problem Matchers for PHPUnit
run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
- name: Run unit tests
run: composer unit
- name: Run infection tests
run: composer infection
continue-on-error: true
- name: Start MySQL Service
run: sudo systemctl start mysql.service
- name: Prepare environment
run: composer prepare
- name: Run integration tests
run: composer integration