This repository has been archived by the owner on Jan 10, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
8 changed files
with
647 additions
and
301 deletions.
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,316 @@ | ||
name: QA | ||
|
||
on: [ push, pull_request ] | ||
|
||
env: | ||
COMPOSER_NO_INTERACTION: 1 | ||
WP_TESTS_DB_PASS: password | ||
wp-version: '*' | ||
|
||
jobs: | ||
coding-standards: | ||
name: Coding Standards (PHP ${{ matrix.php-version }}) | ||
|
||
runs-on: ubuntu-latest | ||
|
||
strategy: | ||
fail-fast: false | ||
matrix: | ||
php-version: | ||
- 7.4 | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
- uses: shivammathur/setup-php@v2 | ||
with: | ||
php-version: ${{ matrix.php-version }} | ||
extensions: bcmath, intl, mbstring, mysql | ||
ini-values: memory_limit=2048M | ||
tools: composer, phpcs | ||
coverage: none | ||
|
||
- name: Composer validation | ||
run: composer validate --strict | ||
|
||
# https://github.com/actions/cache/blob/master/examples.md#php---composer | ||
- name: Get Composer Cache Directory | ||
id: composer-cache | ||
run: | | ||
echo "::set-output name=dir::$(composer config cache-files-dir)" | ||
- uses: actions/cache@v2 | ||
with: | ||
path: ${{ steps.composer-cache.outputs.dir }} | ||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | ||
restore-keys: | | ||
${{ runner.os }}-composer- | ||
- name: Require WordPress | ||
run: composer require --dev --no-update --no-progress --no-suggest roots/wordpress:${{ env.wp-version }} wp-phpunit/wp-phpunit:${{ env.wp-version }} | ||
|
||
- name: Install Composer dependencies | ||
run: composer update --no-progress --no-suggest | ||
|
||
- name: List Composer packages | ||
run: composer show | ||
|
||
- name: PHPLint | ||
run: composer run-script phplint | ||
|
||
- name: PHP Code Sniffer | ||
run: composer run-script phpcs | ||
|
||
- name: PHP Mess Detector | ||
continue-on-error: true | ||
run: composer run-script phpmd | ||
|
||
static-code-analysis: | ||
name: Static Code Analysis (PHP ${{ matrix.php-version }}) | ||
|
||
runs-on: ubuntu-latest | ||
|
||
strategy: | ||
matrix: | ||
php-version: | ||
- 7.4 | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
- uses: shivammathur/setup-php@v2 | ||
with: | ||
php-version: ${{ matrix.php-version }} | ||
extensions: bcmath, intl, mbstring, mysql | ||
ini-values: memory_limit=2048M | ||
tools: composer | ||
coverage: none | ||
|
||
# https://github.com/actions/cache/blob/master/examples.md#php---composer | ||
- name: Get Composer Cache Directory | ||
id: composer-cache | ||
run: | | ||
echo "::set-output name=dir::$(composer config cache-files-dir)" | ||
- uses: actions/cache@v2 | ||
with: | ||
path: ${{ steps.composer-cache.outputs.dir }} | ||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | ||
restore-keys: | | ||
${{ runner.os }}-composer- | ||
- name: Install Composer dependencies | ||
run: composer update --no-progress --no-suggest | ||
|
||
- name: PHPStan static code analysis | ||
run: composer bin phpstan install && composer run-script phpstan | ||
|
||
tests: | ||
name: Tests — PHP ${{ matrix.php-version }} ${{ matrix.name }} | ||
|
||
runs-on: ubuntu-latest | ||
|
||
strategy: | ||
fail-fast: false | ||
matrix: | ||
include: | ||
# PHP Compatibility and WordPress Versions: https://make.wordpress.org/core/handbook/references/php-compatibility-and-wordpress-versions/ | ||
- name: WP 5.6 | ||
php-version: 7.4 | ||
wp-version: 5.6.* | ||
- name: WP 5.5 | ||
php-version: 7.4 | ||
wp-version: 5.5.* | ||
# WordPress and PHP 7.4: https://make.wordpress.org/core/2019/10/11/wordpress-and-php-7-4/. | ||
- name: WP 5.4 | ||
php-version: 7.4 | ||
wp-version: 5.4.* | ||
- name: WP 5.3 | ||
php-version: 7.4 | ||
wp-version: 5.3.* | ||
# WordPress 5.2 (or lower) will trigger PHP 7.4 (or higher) errors. | ||
# @link https://make.wordpress.org/core/2019/10/11/wordpress-and-php-7-4/. | ||
- name: WP 5.2 | ||
php-version: 7.3 | ||
wp-version: 5.2.* | ||
- name: WP 5.1 | ||
php-version: 7.3 | ||
wp-version: 5.1.* | ||
- name: WP 5.0 | ||
php-version: 7.3 | ||
wp-version: 5.0.* | ||
- name: WP 4.9 | ||
php-version: 7.3 | ||
wp-version: 4.9.* | ||
# WordPress 4.8 (or lower) will trigger PHP 7.2 (or higher) errors. | ||
# @link https://make.wordpress.org/core/2018/10/15/wordpress-and-php-7-3/ | ||
# @link https://make.wordpress.org/core/handbook/best-practices/coding-standards/php/ | ||
# @link https://make.wordpress.org/core/tag/4-9/?s=7.2 | ||
- name: WP 4.8 | ||
php-version: 7.1 | ||
wp-version: 4.8.* | ||
- name: WP 4.7 | ||
php-version: 7.1 | ||
wp-version: 4.7.* | ||
- name: Multisite | ||
php-version: 7.4 | ||
WP_MULTISITE: 1 | ||
- php-version: 7.4 | ||
- php-version: 7.3 | ||
- php-version: 7.2 | ||
- php-version: 7.1 | ||
- php-version: 7.0 | ||
- php-version: 5.6 | ||
|
||
services: | ||
mysql: | ||
image: mysql:5.7 | ||
env: | ||
MYSQL_ALLOW_EMPTY_PASSWORD: false | ||
MYSQL_ROOT_PASSWORD: password | ||
MYSQL_DATABASE: wp_phpunit_tests | ||
ports: | ||
- 3306/tcp | ||
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
- uses: shivammathur/setup-php@v2 | ||
with: | ||
php-version: ${{ matrix.php-version }} | ||
extensions: bcmath, intl, mbstring, mysql | ||
ini-values: memory_limit=2048M | ||
tools: composer | ||
coverage: none | ||
|
||
# https://github.com/actions/cache/blob/master/examples.md#php---composer | ||
- name: Get Composer Cache Directory | ||
id: composer-cache | ||
run: | | ||
echo "::set-output name=dir::$(composer config cache-files-dir)" | ||
- uses: actions/cache@v2 | ||
with: | ||
path: ${{ steps.composer-cache.outputs.dir }} | ||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | ||
restore-keys: | | ||
${{ runner.os }}-composer- | ||
- name: Start MySQL service | ||
run: sudo service mysql start | ||
|
||
- name: Require WordPress | ||
run: composer require --dev --no-update --no-progress --no-suggest roots/wordpress:${{ matrix.wp-version || env.wp-version }} wp-phpunit/wp-phpunit:${{ matrix.wp-version || env.wp-version }} | ||
|
||
- name: Install Composer dependencies | ||
run: composer update --no-progress --no-suggest | ||
|
||
- name: List Composer packages | ||
run: composer show | ||
|
||
- name: PHPLint | ||
run: composer run-script phplint | ||
|
||
- name: PHPUnit test suite | ||
env: | ||
WP_TESTS_DB_HOST: 127.0.0.1:${{ job.services.mysql.ports['3306'] }} | ||
run: composer run-script phpunit | ||
|
||
code-coverage: | ||
name: Code Coverage (PHP ${{ matrix.php-version }}) | ||
|
||
runs-on: ubuntu-latest | ||
|
||
strategy: | ||
fail-fast: false | ||
matrix: | ||
php-version: | ||
- 7.4 | ||
|
||
services: | ||
mysql: | ||
image: mysql:5.7 | ||
env: | ||
MYSQL_ALLOW_EMPTY_PASSWORD: false | ||
MYSQL_ROOT_PASSWORD: password | ||
MYSQL_DATABASE: wp_phpunit_tests | ||
ports: | ||
- 3306/tcp | ||
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
- uses: shivammathur/setup-php@v2 | ||
with: | ||
php-version: ${{ matrix.php-version }} | ||
extensions: bcmath, intl, mbstring, mysql | ||
ini-values: memory_limit=2048M | ||
tools: composer | ||
coverage: xdebug | ||
|
||
# https://github.com/actions/cache/blob/master/examples.md#php---composer | ||
- name: Get Composer Cache Directory | ||
id: composer-cache | ||
run: | | ||
echo "::set-output name=dir::$(composer config cache-files-dir)" | ||
- uses: actions/cache@v2 | ||
with: | ||
path: ${{ steps.composer-cache.outputs.dir }} | ||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | ||
restore-keys: | | ||
${{ runner.os }}-composer- | ||
- name: Start MySQL service | ||
run: sudo service mysql start | ||
|
||
- name: Require WordPress | ||
run: composer require --dev --no-update --no-progress --no-suggest roots/wordpress:${{ env.wp-version }} wp-phpunit/wp-phpunit:${{ env.wp-version }} | ||
|
||
- name: Install Composer dependencies | ||
run: composer update --no-progress --no-suggest | ||
|
||
- name: List Composer packages | ||
run: composer show | ||
|
||
- name: PHPLint | ||
run: composer run-script phplint | ||
|
||
- name: PHPUnit test suite | ||
env: | ||
WP_TESTS_DB_HOST: 127.0.0.1:${{ job.services.mysql.ports['3306'] }} | ||
run: composer run-script phpunit | ||
|
||
- name: Coveralls code coverage | ||
env: | ||
COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
run: | | ||
composer run-script coveralls | ||
bash <(curl -s https://codecov.io/bash) | ||
es-sass-linting: | ||
name: Scripts and Styles | ||
|
||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
# https://github.com/actions/cache/blob/master/examples.md#macos-and-ubuntu | ||
- uses: actions/cache@v2 | ||
with: | ||
path: ~/.npm | ||
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | ||
restore-keys: | | ||
${{ runner.os }}-node- | ||
- uses: actions/setup-node@v1 | ||
with: | ||
node-version: '12' | ||
|
||
- name: Install Node packages | ||
run: npm install | ||
|
||
- name: ESLint | ||
run: npm run-script eslint | ||
|
||
- name: Sass Lint | ||
run: npm run-script sass-lint |
This file contains 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
This file contains 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
This file contains 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
Oops, something went wrong.