aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/matchers/phpcs.json19
-rw-r--r--.github/matchers/phpstan.json16
-rw-r--r--.github/matchers/phpunit.json25
-rw-r--r--.github/workflows/php.yml88
-rw-r--r--Makefile4
-rw-r--r--README.md4
-rw-r--r--phpcs.xml1
7 files changed, 131 insertions, 26 deletions
diff --git a/.github/matchers/phpcs.json b/.github/matchers/phpcs.json
new file mode 100644
index 0000000..339af9a
--- /dev/null
+++ b/.github/matchers/phpcs.json
@@ -0,0 +1,19 @@
+{
+ "problemMatcher": [
+ {
+ "owner": "phpcs",
+ "fileLocation": "relative",
+ "pattern": [
+ {
+ "regexp": "^\"(.+)\",(\\d+),(\\d+),(.+),\"(.+)\",(.+),(\\d+),(\\d+)$",
+ "file": 1,
+ "line": 2,
+ "column": 3,
+ "severity": 4,
+ "message": 5,
+ "code": 6
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/.github/matchers/phpstan.json b/.github/matchers/phpstan.json
new file mode 100644
index 0000000..3e6bc6c
--- /dev/null
+++ b/.github/matchers/phpstan.json
@@ -0,0 +1,16 @@
+{
+ "problemMatcher": [
+ {
+ "owner": "phpstan",
+ "severity": "error",
+ "pattern": [
+ {
+ "regexp": "^(.+):(\\d+):(.+)$",
+ "file": 1,
+ "line": 2,
+ "message": 3
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/.github/matchers/phpunit.json b/.github/matchers/phpunit.json
new file mode 100644
index 0000000..0869357
--- /dev/null
+++ b/.github/matchers/phpunit.json
@@ -0,0 +1,25 @@
+{
+ "problemMatcher": [
+ {
+ "owner": "phpunit",
+ "fileLocation": "absolute",
+ "pattern": [
+ {
+ "regexp": "^\\d+\\)\\s.*$"
+ },
+ {
+ "regexp": "^(.*)$",
+ "message": 1
+ },
+ {
+ "regexp": "^\\s*$"
+ },
+ {
+ "regexp": "^(.*):(\\d+)$",
+ "file": 1,
+ "line": 2
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml
index 479a9f9..039daca 100644
--- a/.github/workflows/php.yml
+++ b/.github/workflows/php.yml
@@ -1,46 +1,92 @@
-name: build
+name: checks
on:
- push
- pull_request
jobs:
- php-build:
+ test-php:
+ name: test (php ${{ matrix.php-versions }})
runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ php-versions: ['7.2', '7.3', '7.4']
steps:
- name: Git checkout
uses: actions/checkout@v2
+ - name: Setup PHP, with composer and extensions
+ uses: shivammathur/setup-php@v2 #https://github.com/shivammathur/setup-php
+ with:
+ php-version: ${{ matrix.php-versions }}
+ coverage: xdebug
+
- name: Validate composer.json and composer.lock
run: composer validate
+ - name: Get composer cache directory
+ id: composer-cache
+ run: echo "::set-output name=dir::$(composer config cache-files-dir)"
+
+ - name: Cache dependencies
+ uses: actions/cache@v1
+ with:
+ path: ${{ steps.composer-cache.outputs.dir }}
+ key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
+ restore-keys: |
+ ${{ runner.os }}-composer-
+
- name: Install dependencies
run: composer install --prefer-dist --no-progress --no-suggest
- - name: Run test suite
- run: make check -k
-
- - name: PHPStan xml report
- if: always()
+ - name: PHPUnit
run: |
- mkdir -p build/phpstan
- vendor/bin/phpstan analyse --no-progress --error-format=checkstyle > build/phpstan/checkstyle.xml
-
- - name: Analysis Publisher
- uses: digirati-labs/analysis-publisher@0.0.1
- if: failure()
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- args: >
- --report-type=checkstyle --path=**/build/phpcs/checkstyle.xml
- --report-type=checkstyle --path=**/build/phpstan/checkstyle.xml
- --publisher=github_check
+ echo "::add-matcher::.github/matchers/phpunit.json"
+ make test
+ echo "::remove-matcher owner=phpunit::"
- name: Coveralls publish
- if: always()
env:
COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
composer require --quiet --no-interaction cedx/coveralls
vendor/bin/coveralls build/phpunit/cov.xml
+
+ lint:
+ name: lint
+ runs-on: ubuntu-latest
+ steps:
+ - name: Git checkout
+ uses: actions/checkout@v2
+
+ - name: Validate composer.json and composer.lock
+ run: composer validate
+
+ - name: Get composer cache directory
+ id: composer-cache
+ run: echo "::set-output name=dir::$(composer config cache-files-dir)"
+
+ - name: Cache dependencies
+ uses: actions/cache@v1
+ with:
+ path: ${{ steps.composer-cache.outputs.dir }}
+ key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
+ restore-keys: |
+ ${{ runner.os }}-composer-
+
+ - name: Install dependencies
+ run: composer install --prefer-dist --no-progress --no-suggest
+
+ - name: PHPCS
+ if: always()
+ run: |
+ echo "::add-matcher::.github/matchers/phpcs.json"
+ vendor/bin/phpcs --report=csv
+ echo "::remove-matcher owner=phpcs::"
+
+ - name: PHPStan
+ if: always()
+ run: |
+ echo "::add-matcher::.github/matchers/phpstan.json"
+ vendor/bin/phpstan analyse --error-format=raw --no-progress
+ echo "::remove-matcher owner=phpstan::"
diff --git a/Makefile b/Makefile
index b68717a..1204a5a 100644
--- a/Makefile
+++ b/Makefile
@@ -166,7 +166,7 @@ check: vendor lint analyse test
# Lint php code with phpcs.
.PHONY: lint
lint: $(phpcs_dir)
- phpcs --report-full --report-checkstyle=$(phpcs_dir)/checkstyle.xml
+ phpcs --report-full --report-summary --cache=$(phpcs_dir)/result.cache
# Analyse php code with phpstan.
.PHONY: analyse
@@ -176,7 +176,7 @@ analyse:
# Test php code with phpunit.
.PHONY: test
test: $(phpunit_dir)
- phpunit --log-junit $(phpunit_dir)/junit.xml
+ phpunit
# Create dirs if the do not exist
$(dirs):
diff --git a/README.md b/README.md
index 3336429..492b6c9 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# W-CMS
-[![build][github]][action] ![style][codestyle] ![phpstan][phpstan] [![coverage][coverage]][coveralls]
+[![checks][github]][action] ![style][codestyle] ![phpstan][phpstan] [![coverage][coverage]][coveralls]
W is a lightweight CMS tool, meant to help you design a website using a unique approach. It's targeting artists, or experimental projects.
@@ -178,7 +178,7 @@ Then, to make the release, run the following command:
To only build the release zip, simply run `make dist`. This will create a zip file in `dist/` of the current version.
-[github]: https://github.com/vincent-peugnet/wcms/workflows/build/badge.svg
+[github]: https://github.com/vincent-peugnet/wcms/workflows/checks/badge.svg
[action]: https://github.com/vincent-peugnet/wcms/actions
[codestyle]: https://img.shields.io/badge/code%20style-PSR12-brightgreen
[phpstan]: https://img.shields.io/badge/phpstan-level%205-green
diff --git a/phpcs.xml b/phpcs.xml
index 74932eb..0432286 100644
--- a/phpcs.xml
+++ b/phpcs.xml
@@ -15,7 +15,6 @@
<arg name="colors" />
<arg name="parallel" value="75" />
<arg value="p" />
- <arg name="cache" value="build/phpcs/result.cache" />
<!-- Include the whole PSR12 standard -->
<rule ref="PSR12"></rule>