-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
13589 Target PHP 7.4, support PHP 8.1 (#14)
- Loading branch information
Showing
12 changed files
with
289 additions
and
67 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 |
---|---|---|
@@ -1,26 +1,180 @@ | ||
version: 2.0 | ||
# PHPUnit Composer min/max test. | ||
# TODO: Make our own orb out of this. | ||
|
||
version: 2.1 | ||
orbs: | ||
php: circleci/[email protected] | ||
|
||
commands: | ||
update-packages: | ||
description: | | ||
Update your composer packages with automated caching and best practices applied. | ||
parameters: | ||
app-dir: | ||
default: ~/project | ||
description: Path to the directory containing your composer.json file. Not needed if composer.json lives in the root. | ||
type: string | ||
cache-files-dir: | ||
default: /home/circleci/.composer/cache/files | ||
description: Absolute path to the file cache folder. This should be inline with "composer global config cache-files-dir --absolute". | ||
type: string | ||
cache-key: | ||
default: composer.lock | ||
description: If this file is updated a new cache bucket will be created. Recommended to use composer.lock. Use composer.json when composer.lock is absent. | ||
type: string | ||
cache-version: | ||
default: v1 | ||
description: Change the default cache version if you need to clear the cache for any reason. | ||
type: string | ||
install-flags: | ||
default: --no-interaction --prefer-dist | ||
description: | | ||
By default, packages will be installed with "composer install --no-interaction --prefer-dist", use this to override the standard install flags. | ||
type: string | ||
vendor-dir: | ||
default: vendor | ||
description: Relative path to the vendor folder. Relative to "app-dir". This should be inline with "composer config vendor-dir". | ||
type: string | ||
with-cache: | ||
default: true | ||
description: Enable automatic caching of your dependencies for increased speed. | ||
type: boolean | ||
steps: | ||
- when: | ||
condition: << parameters.with-cache >> | ||
steps: | ||
- restore_cache: | ||
keys: | ||
- composer-deps-<<parameters.cache-version>>-{{ checksum "<<parameters.app-dir>>/<<parameters.cache-key>>" }} | ||
- run: | ||
command: | | ||
if [ ! -f "composer.json" ] && [ ! -f "composer.lock" ]; then | ||
echo | ||
echo "---" | ||
echo "Unable to find your composer.json and composer.lock files. Did you forget to set the app-dir parameter?" | ||
echo "---" | ||
echo | ||
echo "Current directory: $(pwd)" | ||
echo | ||
echo | ||
echo "List directory: " | ||
echo | ||
ls | ||
exit 1 | ||
fi | ||
name: Verify composer.json and/or composer.lock exist | ||
working_directory: <<parameters.app-dir>> | ||
- run: | ||
command: composer update <<parameters.install-flags>> | ||
name: Updating Composer Packages | ||
working_directory: <<parameters.app-dir>> | ||
- when: | ||
condition: << parameters.with-cache >> | ||
steps: | ||
- save_cache: | ||
key: composer-deps-<<parameters.cache-version>>-{{ checksum "<<parameters.app-dir>>/<<parameters.cache-key>>" }} | ||
paths: | ||
- <<parameters.app-dir>>/<<parameters.vendor-dir>> | ||
- <<parameters.cache-files-dir>> | ||
install-xdebug: | ||
steps: | ||
- run: | ||
name: Install XDebug | ||
command: sudo -E install-php-extensions xdebug && sudo -E docker-php-ext-enable xdebug | ||
|
||
install-cc-test-reporter: | ||
# TODO: Parameterize location. | ||
steps: | ||
- run: | ||
name: Install Codeclimate test reporter | ||
command: | | ||
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter | ||
chmod +x ./cc-test-reporter | ||
run-phpunit-tests: | ||
description: | | ||
Run PHPUnit tests. | ||
parameters: | ||
app-dir: | ||
default: ~/project | ||
description: Path to the directory containing your composer.json file. Not needed if composer.json lives in the root. | ||
type: string | ||
install-flags: | ||
default: "" | ||
description: Arguments to `composer update`. | ||
type: string | ||
test-command: | ||
default: test | ||
description: The name of the script within your composer.json which will run your tests. | ||
type: string | ||
report-to-codeclimate: | ||
type: boolean | ||
default: false | ||
description: Report coverage info to Codeclimate. | ||
steps: | ||
- checkout | ||
- update-packages: | ||
app-dir: <<parameters.app-dir>> | ||
cache-key: composer.json | ||
install-flags: <<parameters.install-flags>> | ||
- when: | ||
condition: <<parameters.report-to-codeclimate>> | ||
steps: | ||
- install-xdebug | ||
- install-cc-test-reporter | ||
- run: | | ||
./cc-test-reporter before-build | ||
XDEBUG_MODE=coverage composer <<parameters.test-command>> -- --coverage-clover clover.xml | ||
./cc-test-reporter after-build --coverage-input-type clover --exit-code $? | ||
- when: | ||
condition: | ||
not: <<parameters.report-to-codeclimate>> | ||
steps: | ||
- run: | | ||
XDEBUG_MODE=off composer <<parameters.test-command>> | ||
jobs: | ||
build: | ||
environment: | ||
CC_TEST_REPORTER_ID: d20339bfed51b1e242630efbe3f2745337794f7a856f610aad4d21897c5e0309 | ||
docker: | ||
- image: circleci/php:7-cli-node-browsers-legacy | ||
working_directory: ~/repo | ||
steps: | ||
- checkout | ||
- run: | ||
name: Setup dependencies | ||
command: | | ||
sudo composer self-update | ||
composer install -n --prefer-dist | ||
- run: | ||
name: Setup Code Climate test-reporter | ||
command: | | ||
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter | ||
chmod +x ./cc-test-reporter | ||
- run: | ||
name: Run tests | ||
command: | | ||
./cc-test-reporter before-build | ||
vendor/bin/phpunit --testsuite all --coverage-clover clover.xml | ||
./cc-test-reporter after-build --coverage-input-type clover --exit-code $? | ||
matrix-conditions: | ||
environment: | ||
CC_TEST_REPORTER_ID: d20339bfed51b1e242630efbe3f2745337794f7a856f610aad4d21897c5e0309 | ||
description: Run tests for matrix | ||
executor: | ||
name: php/default | ||
tag: << parameters.version >> | ||
parameters: | ||
version: | ||
default: "7.4" | ||
description: The `cimg/php` Docker image version tag. | ||
type: string | ||
install-flags: | ||
default: "" | ||
description: Arguments to `composer update`. | ||
type: string | ||
steps: | ||
- when: | ||
condition: | ||
and: | ||
- equal: [ "8.1", <<parameters.version>> ] | ||
- equal: [ "", <<parameters.install-flags>> ] | ||
steps: | ||
- run-phpunit-tests: | ||
report-to-codeclimate: true | ||
install-flags: << parameters.install-flags >> | ||
- when: | ||
condition: | ||
not: | ||
and: | ||
- equal: [ "8.1", <<parameters.version>> ] | ||
- equal: [ "", <<parameters.install-flags>> ] | ||
steps: | ||
- run-phpunit-tests: | ||
install-flags: << parameters.install-flags >> | ||
|
||
workflows: | ||
all-tests: | ||
jobs: | ||
- matrix-conditions: | ||
matrix: | ||
parameters: | ||
version: ["7.4", "8.0", "8.1"] | ||
install-flags: ["", "--prefer-lowest"] |
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 |
---|---|---|
@@ -1,4 +1,4 @@ | ||
version: 2 | ||
version: "2" | ||
plugins: | ||
phpcodesniffer: | ||
enabled: true | ||
|
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,14 @@ | ||
# This is the top-most .editorconfig file; do not search in parent directories. | ||
root = true | ||
|
||
# All files. | ||
[*] | ||
end_of_line = LF | ||
indent_style = space | ||
indent_size = 4 | ||
charset = utf-8 | ||
trim_trailing_whitespace = true | ||
insert_final_newline = true | ||
|
||
[composer.{json,lock}] | ||
indent_size = 4 |
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 |
---|---|---|
@@ -1,3 +1,4 @@ | ||
.idea | ||
.phpunit.result.cache | ||
vendor | ||
composer.lock |
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 |
---|---|---|
@@ -1,21 +1,40 @@ | ||
{ | ||
"name": "getdkan/contracts", | ||
"description": "A set of interfaces.", | ||
"license": "GPL-3.0-only", | ||
"type": "library", | ||
"authors": [ | ||
{ | ||
"name": "fmizzell", | ||
"email": "[email protected]" | ||
} | ||
], | ||
"require": { | ||
"php": ">=7.4 <9.0" | ||
}, | ||
"require-dev": { | ||
"phpunit/phpunit": "^9.6", | ||
"rector/rector": "^0.15.17", | ||
"squizlabs/php_codesniffer": "^3.7" | ||
}, | ||
"autoload": { | ||
"psr-4": { | ||
"Contracts\\": "src/", | ||
"Contracts\\": "src/" | ||
} | ||
}, | ||
"autoload-dev": { | ||
"psr-4": { | ||
"ContractsTest\\": "test/" | ||
} | ||
}, | ||
"require-dev": { | ||
"phpunit/phpunit": "~7.5.0" | ||
"config": { | ||
"sort-packages": true | ||
}, | ||
"license": "GPL-3.0-only", | ||
"authors": [ | ||
{ | ||
"name": "fmizzell", | ||
"email": "[email protected]" | ||
} | ||
] | ||
"scripts": { | ||
"phpcbf": "./vendor/bin/phpcbf", | ||
"phpcs": "./vendor/bin/phpcs", | ||
"rector": "./vendor/bin/rector process", | ||
"rector-dry-run": "./vendor/bin/rector process --dry-run", | ||
"test": "./vendor/bin/phpunit --testsuite all" | ||
} | ||
} |
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,14 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<ruleset name="getdkan"> | ||
|
||
<arg name="extensions" value="inc,install,module,php,profile,test,theme,yml"/> | ||
<description>PHP CodeSniffer configuration for GetDKAN.</description> | ||
|
||
<file>src</file> | ||
<file>test</file> | ||
<file>rector.php</file> | ||
|
||
<rule ref="PSR1"/> | ||
<rule ref="PSR2"/> | ||
|
||
</ruleset> |
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 |
---|---|---|
@@ -1,18 +1,14 @@ | ||
<phpunit | ||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/6.3/phpunit.xsd" | ||
verbose="false"> | ||
|
||
<?xml version="1.0"?> | ||
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" verbose="false"> | ||
<coverage processUncoveredFiles="true"> | ||
<include> | ||
<directory suffix=".php">src</directory> | ||
</include> | ||
</coverage> | ||
<testsuites> | ||
<testsuite name="all"> | ||
<directory suffix="Test.php" phpVersion="7.2" phpVersionOperator=">=">test</directory> | ||
<directory suffix="Test.php">test</directory> | ||
</testsuite> | ||
</testsuites> | ||
|
||
<filter> | ||
<whitelist processUncoveredFilesFromWhitelist="true"> | ||
<directory suffix=".php">src</directory> | ||
</whitelist> | ||
</filter> | ||
|
||
</phpunit> |
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,26 @@ | ||
<?php | ||
|
||
/** | ||
* Generic PHP 7.4 update. | ||
*/ | ||
|
||
declare(strict_types=1); | ||
|
||
use Rector\Config\RectorConfig; | ||
use Rector\Set\ValueObject\LevelSetList; | ||
use Rector\Php73\Rector\FuncCall\JsonThrowOnErrorRector; | ||
|
||
return static function (RectorConfig $rectorConfig): void { | ||
$rectorConfig->paths([ | ||
__DIR__ . '/src', | ||
__DIR__ . '/test', | ||
]); | ||
|
||
$rectorConfig->sets([ | ||
LevelSetList::UP_TO_PHP_74, | ||
]); | ||
|
||
$rectorConfig->skip([ | ||
JsonThrowOnErrorRector::class, | ||
]); | ||
}; |
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.