Skip to content

Merge pull request #2936 from skaut/dependabot/composer/phpstan/phpst… #5717

Merge pull request #2936 from skaut/dependabot/composer/phpstan/phpst…

Merge pull request #2936 from skaut/dependabot/composer/phpstan/phpst… #5717

Workflow file for this run

name: "CI"
on:
push:
branches: "*"
pull_request:
env:
php-version: 8.2
cache-version: 1
jobs:
platform-check:
name: "PHP 5.6 compatibility"
runs-on: ubuntu-latest
steps:
- name: "Checkout"
uses: actions/checkout@v4
- name: "Setup PHP"
uses: shivammathur/setup-php@2.31.1
with:
php-version: 5.6
coverage: none
- name: "Check dependency compatibility"
run: |
composer check-platform-reqs --no-dev
build:
name: "Build"
runs-on: ubuntu-latest
steps:
- name: "Checkout"
uses: actions/checkout@v4
- name: "Setup PHP"
uses: shivammathur/setup-php@2.31.1
with:
php-version: ${{ env.php-version }}
coverage: none
- name: "Cache Composer dependencies"
uses: actions/cache@v4
with:
path: "~/.composer/cache"
key: composer-dependencies-${{ runner.os }}-${{ env.cache-version }}-${{ hashFiles('composer.json') }}
restore-keys: |
composer-dependencies-${{ runner.os }}-${{ env.cache-version }}-${{ hashFiles('composer.json') }}
composer-dependencies-${{ runner.os }}-${{ env.cache-version }}-
- name: "Install Composer dependencies"
run: |
composer install -n --prefer-dist
- name: "Cache NPM dependencies"
uses: actions/cache@v4
with:
path: "~/.npm"
key: npm-dependencies-${{ runner.os }}-${{ env.cache-version }}-${{ hashFiles('package.json') }}
restore-keys: |
npm-dependencies-${{ runner.os }}-${{ env.cache-version }}-${{ hashFiles('package.json') }}
npm-dependencies-${{ runner.os }}-${{ env.cache-version }}-
- name: "Install NPM dependencies"
run: |
npm ci
- name: "Build"
run: |
npm run build
- name: "Upload artifact"
uses: actions/upload-artifact@v4
with:
name: "build-artifact"
path: dist
lint:
name: "Lint"
runs-on: ubuntu-latest
needs: build
env:
php-extensions: ast
steps:
- name: "Checkout"
uses: actions/checkout@v4
- name: "Setup PHP extension caching"
id: extcache
uses: shivammathur/cache-extensions@1.11.1
with:
php-version: ${{ env.php-version }}
extensions: ${{ env.php-extensions }}
key: php-extensions-${{ runner.os }}-${{ env.cache-version }}
- name: "Cache extensions"
uses: actions/cache@v4
with:
path: ${{ steps.extcache.outputs.dir }}
key: ${{ steps.extcache.outputs.key }}
restore-keys: ${{ steps.extcache.outputs.key }}
- name: "Setup PHP"
uses: shivammathur/setup-php@2.31.1
with:
php-version: ${{ env.php-version }}
extensions: ${{ env.php-extensions }}
coverage: none
- name: "Cache Composer dependencies"
uses: actions/cache@v4
with:
path: "~/.composer/cache"
key: composer-dependencies-${{ runner.os }}-${{ env.cache-version }}-${{ hashFiles('composer.json') }}
restore-keys: |
composer-dependencies-${{ runner.os }}-${{ env.cache-version }}-${{ hashFiles('composer.json') }}
composer-dependencies-${{ runner.os }}-${{ env.cache-version }}-
- name: "Install Composer dependencies"
run: |
composer install -n --prefer-dist
- name: "Cache NPM dependencies"
uses: actions/cache@v4
with:
path: "~/.npm"
key: npm-dependencies-${{ runner.os }}-${{ env.cache-version }}-${{ hashFiles('package.json') }}
restore-keys: |
npm-dependencies-${{ runner.os }}-${{ env.cache-version }}-${{ hashFiles('package.json') }}
npm-dependencies-${{ runner.os }}-${{ env.cache-version }}-
- name: "Install NPM dependencies"
run: |
npm ci
- name: "Download build artifact"
uses: actions/download-artifact@v4
with:
name: "build-artifact"
path: dist
- name: "Lint"
run: |
npm run lint
unit:
name: "Test"
runs-on: ubuntu-latest
needs: build
strategy:
matrix:
versions: [{php: "5.6", wordpress: "4.9"}, {php: "5.6", wordpress: "5.9"}, {php: "5.6", wordpress: "6.2"}, {php: "7.4", wordpress: "latest"}, {php: "8.2", wordpress: "latest"}]
services:
mysql:
image: mysql:5
ports:
- 3306:3306
env:
MYSQL_ALLOW_EMPTY_PASSWORD: yes
steps:
- name: "Checkout"
uses: actions/checkout@v4
- name: "Install SVN"
uses: awalsh128/cache-apt-pkgs-action@v1.4.2
with:
packages: subversion
version: ${{ env.cache-version }}
- name: "Setup PHP"
uses: shivammathur/setup-php@2.31.1
with:
php-version: ${{ matrix.versions.php }}
coverage: pcov
- name: "Cache Composer dependencies"
uses: actions/cache@v4
with:
path: "~/.composer/cache"
key: composer-dependencies-test-${{ runner.os }}-${{ env.cache-version }}-${{ hashFiles('composer.json') }}
restore-keys: |
composer-dependencies-test-${{ runner.os }}-${{ env.cache-version }}-${{ hashFiles('composer.json') }}
composer-dependencies-test-${{ runner.os }}-${{ env.cache-version }}-
- name: "Move phpunit to non-dev Composer dependencies"
run: |
composer -n require --no-update yoast/phpunit-polyfills phpunit/phpunit:"^5.7 || ^6.5 || ^7.5 || ^8.5 || ^9.6"
- name: "Remove all non-dev Composer dependencies"
run: |
composer remove --dev --no-update $(composer show -s | sed -n '/requires (dev)$/,/^$/p' | grep -v 'requires (dev)' | cut -d ' ' -f1 | tr '\n' ' ')
- name: "Install Composer dependencies"
run: |
composer update -n --prefer-dist
- name: "Cache NPM dependencies"
uses: actions/cache@v4
with:
path: "~/.npm"
key: npm-dependencies-${{ runner.os }}-${{ env.cache-version }}-${{ hashFiles('package.json') }}
restore-keys: |
npm-dependencies-${{ runner.os }}-${{ env.cache-version }}-${{ hashFiles('package.json') }}
npm-dependencies-${{ runner.os }}-${{ env.cache-version }}-
- name: "Install NPM dependencies"
run: |
npm ci
- name: "Download build artifact"
uses: actions/download-artifact@v4
with:
name: "build-artifact"
path: dist
- name: "Prepare WordPress test environment"
run: |
./bin/install-wp-tests.sh wordpress_test root '' 127.0.0.1 ${{ matrix.versions.wordpress }}
- name: "Run tests"
run: |
npm run test
- name: "Upload coverage results"
uses: codecov/codecov-action@v5.0.7
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true