Skip to content
This repository has been archived by the owner on Aug 5, 2021. It is now read-only.

Commit

Permalink
Merge branch 'release/2.1.1'
Browse files Browse the repository at this point in the history
  • Loading branch information
rvdsteege committed Apr 26, 2021
2 parents 12c5a13 + 82ab6b5 commit 4eb9cf3
Show file tree
Hide file tree
Showing 24 changed files with 2,649 additions and 43 deletions.
316 changes: 316 additions & 0 deletions .github/workflows/main.yaml
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
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
/composer.lock
/vendor/

# Composer bin plugin
/vendor-bin/**/vendor

# Eclipse
/.buildpath
/.project
Expand Down
10 changes: 10 additions & 0 deletions .phplint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
path: ./
jobs: 10
cache: build/phplint.cache
extensions:
- php
exclude:
- build
- node_modules
- vendor
- wordpress
12 changes: 8 additions & 4 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,7 @@ jobs:
- php: 7.0
- php: 5.6
- php: nightly
- php: hhvm
allow_failures:
- php: hhvm
- php: nightly
- env: PHPMD=1
- env: PHPSTAN=1
Expand All @@ -54,6 +52,8 @@ before_install:
if [[ "$COVERAGE" != "1" && -f ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/xdebug.ini ]]; then
phpenv config-rm xdebug.ini
fi
# Set Xdebug mode for coverage.
- export XDEBUG_MODE=coverage
# Raise PHP memory limit to 2048MB
- echo 'memory_limit = 2048M' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini
# Validate composer.json file.
Expand All @@ -74,6 +74,10 @@ install:
- composer self-update
# Install Composer packages.
- composer install
# PHPStan
- if [ "$PHPSTAN" == "1" ]; then composer bin phpstan install; fi
# Psalm
- if [ "$PSALM" == "1" ]; then composer bin psalm install; fi
# Test on specific WordPress version.
- composer require --dev --update-with-dependencies roots/wordpress:${WP_VERSION} wp-phpunit/wp-phpunit:${WP_VERSION}
# List available packages.
Expand All @@ -89,9 +93,9 @@ script:
# PHP Mess Detector
- if [ "$PHPMD" == "1" ]; then composer run-script phpmd; fi
# PHPStan
- if [ "$PHPSTAN" == "1" ]; then phpstan analyze; fi
- if [ "$PHPSTAN" == "1" ]; then composer run-script phpstan; fi
# Psalm
- if [ "$PSALM" == "1" ]; then psalm; fi
- if [ "$PSALM" == "1" ]; then composer run-script psalm; fi

after_success:
- if [ "$COVERAGE" == "1" ]; then composer run-script coveralls; fi
Expand Down
Loading

0 comments on commit 4eb9cf3

Please sign in to comment.