-
Notifications
You must be signed in to change notification settings - Fork 40
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
CI: switch to GitHub Actions - step 2: test stage
This commit: * Adds a GH Actions workflow for the CI check which was previously run on Travis in the `test` stage. * Removes the, now redundant, `.travis.yml` configuration. * Updates the `.gitattributes` file. Notes: 1. For the time being, I've commented out the job against PHP 8.1/nightly as - no matter what I've tried - I can't even get the tests running at the moment, so they would only ever fail. Once PHP 8.1 starts to release alpha/beta/RC builds, further testing should be done to attempt to get this working. Notes/current findings: - With PHPUnit 7.x on PHP 8.1, using a configuration file will block the tests from running. - In some cases (PHPCS itself, PHPCSExtra), I managed to get the tests running by passing all relevant information via the command-line and actively ignoring the configuration file using `--no-configuration`. Unfortunately, that does not seem to work in this case. Further investigation is needed. - Based on the (running) tests for PHPCSExtra on PHP 8.1, an incompatibility with PHP 8.1 in PHPCS itself has already been discovered. A fix for this has been pulled, but not yet merged: squizlabs/php_codesniffer 3250
- Loading branch information
Showing
3 changed files
with
101 additions
and
77 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
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,101 @@ | ||
name: Test | ||
|
||
on: | ||
# Run on all pushes and on all pull requests. | ||
# Prevent the "push" build from running when there are only irrelevant changes. | ||
push: | ||
paths-ignore: | ||
- '**.md' | ||
pull_request: | ||
# Allow manually triggering the workflow. | ||
workflow_dispatch: | ||
|
||
jobs: | ||
test: | ||
runs-on: ubuntu-latest | ||
|
||
strategy: | ||
# Keys: | ||
# - php: The PHP versions to test against. | ||
# - phpcs_version: The PHPCS versions to test against. | ||
# IMPORTANT: test runs shouldn't fail because of PHPCS being incompatible with a PHP version. | ||
# - PHPCS will run without errors on PHP 5.4 - 7.4 on any supported version. | ||
# - PHP 8.0 needs PHPCS 3.5.7+ to run without errors. | ||
# - The `wpcs_version` key is added to allow additional test builds when multiple WPCS versions | ||
# would be supported. As, at this time, only the latest stable release of WPCS is supported, | ||
# no additional versions are included in the array. | ||
# - experimental: Whether the build is "allowed to fail". | ||
matrix: | ||
php: ['5.4', '5.5', '5.6', '7.0', '7.1', '7.2', '7.3', '7.4'] | ||
phpcs_version: ['3.5.5', 'dev-master'] | ||
wpcs_version: ['2.3.*'] | ||
experimental: [false] | ||
|
||
include: | ||
# Complete the matrix by adding PHP 8.0, but only test against compatible PHPCS versions. | ||
- php: '8.0' | ||
phpcs_version: 'dev-master' | ||
wpcs_version: '2.3.*' | ||
experimental: false | ||
- php: '8.0' | ||
# PHPCS 3.5.7 is the lowest version of PHPCS which supports PHP 8.0. | ||
phpcs_version: '3.5.7' | ||
wpcs_version: '2.3.*' | ||
experimental: false | ||
|
||
# Experimental builds. These are allowed to fail. | ||
#- php: '8.1' | ||
# phpcs_version: 'dev-master' | ||
# wpcs_version: '2.3.*' | ||
# experimental: true | ||
|
||
name: "Test: PHP ${{ matrix.php }} - PHPCS ${{ matrix.phpcs_version }} - WPCS ${{ matrix.wpcs_version }}" | ||
|
||
continue-on-error: ${{ matrix.experimental }} | ||
|
||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v2 | ||
|
||
# On stable PHPCS versions, allow for PHP deprecation notices. | ||
# Unit tests don't need to fail on those for stable releases where those issues won't get fixed anymore. | ||
- name: Setup ini config | ||
id: set_ini | ||
run: | | ||
if [[ "${{ matrix.phpcs_version }}" != "dev-master" ]]; then | ||
echo '::set-output name=PHP_INI::error_reporting=E_ALL & ~E_DEPRECATED' | ||
else | ||
echo '::set-output name=PHP_INI::error_reporting=E_ALL' | ||
fi | ||
- name: Install PHP | ||
uses: shivammathur/setup-php@v2 | ||
with: | ||
php-version: ${{ matrix.php }} | ||
ini-values: ${{ steps.set_ini.outputs.PHP_INI }} | ||
coverage: none | ||
|
||
- name: 'Composer: set PHPCS and WPCS versions for tests' | ||
run: | | ||
composer require --no-update --no-scripts squizlabs/php_codesniffer:"${{ matrix.phpcs_version }}" | ||
composer require --no-update --no-scripts wp-coding-standards/wpcs:"${{ matrix.wpcs_version }}" | ||
# Install dependencies and handle caching in one go. | ||
# @link https://github.com/marketplace/actions/install-composer-dependencies | ||
- name: Install Composer dependencies - normal | ||
if: ${{ startsWith( matrix.php, '8' ) == false }} | ||
uses: "ramsey/composer-install@v1" | ||
|
||
# PHPUnit 7.x does not allow for installation on PHP 8, so ignore platform | ||
# requirements to get PHPUnit 7.x to install on nightly. | ||
- name: Install Composer dependencies - with ignore platform | ||
if: ${{ startsWith( matrix.php, '8' ) }} | ||
uses: "ramsey/composer-install@v1" | ||
with: | ||
composer-options: --ignore-platform-reqs | ||
|
||
- name: Run the unit tests | ||
run: ./bin/unit-tests | ||
|
||
- name: Run the ruleset tests | ||
run: ./bin/ruleset-tests |
This file was deleted.
Oops, something went wrong.