Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update tools and use make to run them #400

Merged
merged 1 commit into from
Dec 6, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 16 additions & 19 deletions .github/workflows/continuous-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
strategy:
matrix:
php-version:
- 8.0
- 8.1

steps:
- name: "Checkout"
Expand All @@ -31,9 +31,6 @@ jobs:
extensions: "mbstring, json"
php-version: ${{ matrix.php-version }}

- name: "Validate composer.json and composer.lock"
run: composer validate --strict

- name: "Cache dependencies installed with composer"
uses: actions/cache@v2.1.7
with:
Expand All @@ -45,8 +42,8 @@ jobs:
- name: "Install locked dependencies with composer"
run: composer install --no-interaction --no-progress --no-suggest

- name: "Run localheinz/composer-normalize"
run: composer normalize --dry-run
- name: "Run composer lint"
run: make lint-composer

- name: "Create cache directory for friendsofphp/php-cs-fixer"
run: mkdir -p .build/php-cs-fixer
Expand All @@ -60,7 +57,9 @@ jobs:
php${{ matrix.php-version }}-php-cs-fixer-
- name: "Run friendsofphp/php-cs-fixer"
run: composer cs-diff
env:
PHP_CS_FIXER_IGNORE_ENV: 1
run: make cs

static-code-analysis:
name: "Static Code Analysis"
Expand Down Expand Up @@ -95,13 +94,13 @@ jobs:
run: composer install --no-interaction --no-progress --no-suggest

- name: "Run phpstan/phpstan"
run: composer phpstan
run: make phpstan

- name: "Run psalm"
run: vendor/bin/psalm --config=psalm.xml --diff --shepherd --show-info=false --stats --threads=4
run: make psalm

- name: "Run phpmd"
run: composer phpmd
run: make phpmd

tests:
name: "Test (PHP ${{ matrix.php-version }}, symfony ${{ matrix.symfony }}, ${{ matrix.dependencies }})"
Expand Down Expand Up @@ -134,7 +133,8 @@ jobs:
php-version: ${{ matrix.php-version }}

- name: 'Install Symfony Flex'
run: composer global require --prefer-dist --no-progress --no-suggest --ansi symfony/flex
run: |
composer global require --prefer-dist --no-progress --no-suggest --ansi symfony/flex
- name: "Cache dependencies installed with composer"
uses: actions/cache@v2.1.7
Expand All @@ -156,7 +156,7 @@ jobs:
run: composer update --no-interaction --no-progress --no-suggest

- name: "Run tests with phpunit/phpunit"
run: composer test
run: make test

code-coverage:
name: "Code Coverage"
Expand Down Expand Up @@ -191,7 +191,7 @@ jobs:
run: composer install --no-interaction --no-progress --no-suggest

- name: "Collect code coverage with pcov and phpunit/phpunit"
run: composer coverage
run: make coverage

- name: "Send code coverage report to Codecov.io"
env:
Expand All @@ -206,7 +206,7 @@ jobs:
strategy:
matrix:
php-version:
- 8.1
- 8.0

steps:
- name: "Checkout"
Expand All @@ -216,7 +216,7 @@ jobs:
uses: shivammathur/setup-php@2.16.0
with:
coverage: pcov
extensions: "mbstring"
extensions: "mbstring, json"
php-version: ${{ matrix.php-version }}

- name: "Cache dependencies installed with composer"
Expand All @@ -230,8 +230,5 @@ jobs:
- name: "Install locked dependencies with composer"
run: composer install --no-interaction --no-progress --no-suggest

- name: "Download infection"
run: wget -O infection https://github.com/infection/infection/releases/download/0.19.0/infection.phar && chmod +x infection

- name: "Run mutation tests with pcov and infection/infection"
run: ./infection
run: make infection
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
.php-cs-fixer.cache
.php-cs-fixer.php
.phpunit.result.cache
coverage
composer.lock
Expand All @@ -7,3 +8,4 @@ phpunit.xml
/vendor/
!/vendor-bin/tools/composer.lock
/vendor-bin/tools/vendor/
/vendor-bin/tools/bin/
5 changes: 4 additions & 1 deletion .php-cs-fixer.php → .php-cs-fixer.dist.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,10 @@
],
'php_unit_internal_class' => false,
'php_unit_test_class_requires_covers' => false,
'no_superfluous_phpdoc_tags' => true,
'no_superfluous_phpdoc_tags' => [
'allow_mixed' => true,
'remove_inheritdoc' => true,
],
'static_lambda' => true,
'global_namespace_import' => [
'import_classes' => true,
Expand Down
64 changes: 64 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
.PHONY: default
default: lint

.PHONY: fix
fix: cs-fix lint-fix

.PHONY: lint
lint: lint-composer

.PHONY: lint-composer
lint-composer:
composer validate --strict
composer normalize --dry-run

.PHONY: test
test: vendor-bin/tools/vendor
vendor/bin/phpunit --colors=always

.PHONY: infection
infection: vendor/bin/infection
vendor/bin/infection --threads=4

.PHONY: coverage
coverage: vendor-bin/tools/vendor
vendor/bin/phpunit --colors=always --coverage-clover=build/logs/clover.xml

.PHONY: cs
cs: vendor-bin/tools/vendor
vendor/bin/php-cs-fixer fix --verbose --diff --dry-run

.PHONY: cs-fix
cs-fix: vendor-bin/tools/vendor
vendor/bin/php-cs-fixer fix --verbose

.PHONY: psalm
psalm: vendor-bin/tools/vendor
vendor/bin/psalm --config=psalm.xml --diff --shepherd --show-info=false --stats --threads=4

.PHONY: phpstan
phpstan: vendor-bin/tools/vendor
vendor/bin/phpstan analyse

.PHONY: phpmd
phpmd: vendor-bin/tools/vendor
vendor/bin/phpmd src,tests ansi phpmd.xml

.PHONY: lint-fix
lint-fix:
find ./src \\( -name '*.xml' -or -name '*.xml.dist' -or -name '*.xlf' \\) -type f -exec xmllint --encode UTF-8 --output '{}' --format '{}' \\;
find ./src \\( -name '*.yml' -or -name '*.yaml' \\) -not -path '*/vendor/*' | xargs yaml-lint

.PHONY: check-dependencies
check-dependencies: vendor-bin/tools/vendor
vendor/bin/composer-require-checker check --config-file composer-require.json composer.json

#
# Installation tasks
#

vendor-bin/tools/vendor:
composer --working-dir=vendor-bin/tools install

vendor/bin/infection: vendor-bin/tools/vendor
wget -O vendor/bin/infection https://github.com/infection/infection/releases/latest/download/infection.phar && chmod +x vendor/bin/infection
64 changes: 26 additions & 38 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,22 +1,40 @@
{
"name": "nucleos/dompdf-bundle",
"type": "symfony-bundle",
"description": "This bundle provides a wrapper for using dompdf inside symfony.",
"license": "MIT",
"type": "symfony-bundle",
"keywords": [
"symfony",
"bundle",
"dompdf",
"pdf",
"wrapper"
],
"homepage": "https://nucleos.rocks",
"license": "MIT",
"authors": [
{
"name": "Christian Gripp",
"email": "mail@core23.de"
}
],
"homepage": "https://nucleos.rocks",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/core23"
},
{
"type": "opencollective",
"url": "https://opencollective.com/core23"
},
{
"type": "ko-fi",
"url": "https://ko-fi.com/core23"
},
{
"type": "other",
"url": "https://donate.core23.de"
}
],
"require": {
"php": "^8.0",
"dompdf/dompdf": "^0.7 || ^0.8 || ^1.0.0",
Expand All @@ -36,9 +54,6 @@
"suggest": {
"symfony/event-dispatcher": "If you need to modify the PDF rendering"
},
"config": {
"sort-packages": true
},
"autoload": {
"psr-4": {
"Nucleos\\DompdfBundle\\": "src/"
Expand All @@ -49,42 +64,15 @@
"Nucleos\\DompdfBundle\\Tests\\": "tests/"
}
},
"config": {
"sort-packages": true
},
"scripts": {
"post-install-cmd": [
"@composer bin all install --ansi"
],
"post-update-cmd": [
"@composer bin all install --ansi"
],
"coverage": "vendor/bin/phpunit --colors=always --coverage-clover=build/logs/clover.xml",
"cs": "PHP_CS_FIXER_IGNORE_ENV=1 && vendor/bin/php-cs-fixer fix --verbose",
"cs-diff": "PHP_CS_FIXER_IGNORE_ENV=1 && vendor/bin/php-cs-fixer fix --verbose --diff --dry-run",
"deps": "vendor/bin/composer-require-checker check --config-file composer-require.json composer.json",
"infection": "vendor/bin/infection",
"lint": [
"find ./src \\( -name '*.xml' -or -name '*.xml.dist' -or -name '*.xlf' \\) -type f -exec xmllint --encode UTF-8 --output '{}' --format '{}' \\;",
"find ./src \\( -name '*.yml' -or -name '*.yaml' \\) -not -path '*/vendor/*' | xargs yaml-lint"
],
"phpmd": "vendor/bin/phpmd src,tests ansi phpmd.xml",
"phpstan": "vendor/bin/phpstan analyse",
"test": "vendor/bin/phpunit --colors=always"
},
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/core23"
},
{
"type": "opencollective",
"url": "https://opencollective.com/core23"
},
{
"type": "ko-fi",
"url": "https://ko-fi.com/core23"
},
{
"type": "other",
"url": "https://donate.core23.de"
}
]
]
}
}
5 changes: 1 addition & 4 deletions phpstan.neon.dist
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,11 @@ includes:
- phpstan-baseline.neon

parameters:
level: max
level: 8

paths:
- src
- tests

bootstrapFiles:
- vendor-bin/tools/vendor/autoload.php

excludes_analyse:
- tests/bootstrap.php
30 changes: 15 additions & 15 deletions vendor-bin/tools/composer.json
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
{
"name": "nucleos/dev-tools",
"type": "project",
"description": "Development tools that do not conflict the project dependencies",
"type": "project",
"require-dev": {
"friendsofphp/php-cs-fixer": "^3.0",
"jangregor/phpstan-prophecy": "^0.8",
"maglnet/composer-require-checker": "^2.0",
"matthiasnoback/symfony-dependency-injection-test": "^4.0",
"phpmd/phpmd": "^2.9",
"phpspec/prophecy-phpunit": "^2.0",
"friendsofphp/php-cs-fixer": "^3.3",
"maglnet/composer-require-checker": "^3.5",
"matthiasnoback/symfony-dependency-injection-test": "^4.3",
"phpmd/phpmd": "^2.10",
"phpstan/extension-installer": "^1.0",
"phpstan/phpstan": "^0.12",
"phpstan/phpstan-phpunit": "^0.12",
"phpstan/phpstan-strict-rules": "^0.12",
"phpstan/phpstan-symfony": "^0.12",
"phpunit/phpunit": "^8.5 || ^9.0",
"phpstan/phpstan": "^1.0",
"phpstan/phpstan-doctrine": "^1.0",
"phpstan/phpstan-phpunit": "^1.0",
"phpstan/phpstan-strict-rules": "^1.0",
"phpstan/phpstan-symfony": "^1.0",
"phpunit/phpunit": "^9.5",
"psalm/plugin-phpunit": "^0.16",
"psalm/plugin-symfony": "^3.0",
"symfony/phpunit-bridge": "^5.1",
"vimeo/psalm": "^4.3.1"
"symfony/phpunit-bridge": "^6.0",
"vimeo/psalm": "^4.13"
},
"config": {
"bin-dir": "../../vendor/bin",
"platform": {
"php": "8.0"
"php": "8.0.2"
}
}
}
Loading