Skip to content

2.x Fix menu location compatibility with WPML #849

2.x Fix menu location compatibility with WPML

2.x Fix menu location compatibility with WPML #849

Workflow file for this run

name: Timber Tests
on:
push:
branches:
- '*'
pull_request:
types:
- opened
- synchronize
- ready_for_review
# Cancel previous workflow run groups that have not completed.
concurrency:
# Group workflow runs by workflow name, along with the head branch ref of the pull request
# or otherwise the branch or tag ref.
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.ref }}
cancel-in-progress: true
jobs:
phpunit:
runs-on: ubuntu-latest
services:
mysql:
image: mariadb:latest
env:
MYSQL_ALLOW_EMPTY_PASSWORD: true
MYSQL_ROOT_PASSWORD: ''
MYSQL_DATABASE: wordpress_test
ports:
- 3306
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
continue-on-error: ${{ matrix.experimental }}
strategy:
fail-fast: false
matrix:
php: ['7.4', '8.0', '8.1']
wp: ['latest', '5.3']
multisite: ['0', '1']
dependency-version: ['highest', 'lowest']
webp: [false]
coverage: [false]
extensions: ['gd']
experimental: [false]
exclude:
- wp: '5.3'
php: '8.0'
- wp: '5.3'
php: '8.1'
include:
# WP Trunk
- php: '7.4'
wp: 'trunk'
dependency-version: 'highest'
multisite: '0'
experimental: true
# PHP 8.0
- php: '8.0'
wp: 'latest'
dependency-version: 'prefer-stable'
multisite: '0'
experimental: false
# PHP 8.0 / Lowest dependencies
- php: '8.0'
wp: 'latest'
dependency-version: 'prefer-lowest'
multisite: '0'
experimental: false
# PHP 8.1
- php: '8.1'
wp: 'latest'
dependency-version: 'prefer-stable'
multisite: '0'
experimental: false
# PHP 8.1 / Lowest dependencies
- php: '8.1'
wp: 'latest'
dependency-version: 'prefer-lowest'
multisite: '0'
experimental: false
# PHP 8.1 / experimental
- php: '8.1'
wp: 'trunk'
dependency-version: 'highest'
multisite: '0'
experimental: true
# PHP 8.2 / experimental
- php: '8.2'
wp: 'trunk'
dependency-version: 'highest'
multisite: '0'
experimental: true
# PHP with Imagick
- php: '7.4'
wp: 'latest'
dependency-version: 'highest'
multisite: '0'
extensions: 'imagick'
experimental: false
# Coverage
- php: '7.4'
wp: 'latest'
dependency-version: 'highest'
multisite: '0'
coverage: true
experimental: false
name: PHP ${{ matrix.php }} ${{ matrix.extensions == 'imagick' && ' (Imagick)' || '' }}${{ matrix.coverage && ' (with coverage)' || '' }} ${{ matrix.webp && ' (webp)' || '' }} | WP ${{ matrix.wp }}${{ matrix.multisite == 1 && ' (MS)' || '' }} | ${{ matrix.dependency-version }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
coverage: ${{ matrix.coverage && 'pcov' || 'none' }}
tools: composer:v2
extensions: curl, date, dom, iconv, json, libxml, mysql, ${{ matrix.extensions }}
ini-values: pcov.directory=src
- name: Shutdown default MySQL service
run: sudo service mysql stop
- name: Verify MariaDB connection
run: |
while ! mysqladmin ping -h"127.0.0.1" -P"${{ job.services.mysql.ports[3306] }}" --silent; do
sleep 1
done
- name: Setup problem matchers for PHP
run: echo "::add-matcher::${{ runner.tool_cache }}/php.json"
- name: Setup problem matchers for PHPUnit
run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
- uses: ramsey/composer-install@v2
with:
dependency-versions: ${{ matrix.dependency-version }}
- name: Upgrade dev dependencies when lowest
if: matrix.dependency-version == 'lowest'
run: |
composer update yoast/wp-test-utils -W --dev
composer update composer/installers -W
- name: Lint composer.json
run: composer run lint-composer
- name: Lint PHP
run: composer run lint
- name: Check CS
run: composer run cs
- name: Downgrade PHPUnit to ^7.5 when WP < 5.9
if: matrix.wp < '5.9'
run: composer req phpunit/phpunit:^7.5 yoast/wp-test-utils:^1.0 -W --dev
- name: Upgrade PHPUnit to ^9.0 when prefer lowest and PHP 8.0+
if: ${{ matrix.dependency-version == 'prefer-lowest' && matrix.php >= '8.0' }}
run: composer req phpunit/phpunit:^9.0 yoast/wp-test-utils:^1.0 -W --dev
- name: Install tests
run: bash bin/install-wp-tests.sh wordpress_test root '' 127.0.0.1:${{ job.services.mysql.ports['3306'] }} ${{ matrix.wp }} true
# - name: Setup PCOV
# if: ${{ matrix.coverage == true }}
# run: |
# composer require --dev --ignore-platform-reqs pcov/clobber
# vendor/bin/pcov clobber
- name: Run tests
if: ${{ !matrix.webp }}
run: composer run test:no-cov
env:
WP_MULTISITE: ${{ matrix.multisite }}
- name: Run tests with coverage
if: matrix.coverage == true
run: |
composer run test:codecov
- name: Upload coverage results to Coveralls
if: matrix.coverage == true
env:
COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
composer global require php-coveralls/php-coveralls
php-coveralls --coverage_clover=${GITHUB_WORKSPACE}/build/logs/clover.xml -v
- name: Run webp tests
if: matrix.webp
run: vendor/phpunit/phpunit/phpunit -c phpunit.xml --verbose --filter 'TestTimberImageToWEBP'