From 68c5d7e1973f74e0b8d7740c90e54c0e9cdd718d Mon Sep 17 00:00:00 2001 From: n-peugnet Date: Tue, 21 Apr 2020 21:39:28 +0200 Subject: tests: add github annotation reports --- .github/workflows/php.yml | 55 ++++++++++++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 22 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml index defd044..a7414b5 100644 --- a/.github/workflows/php.yml +++ b/.github/workflows/php.yml @@ -1,27 +1,38 @@ name: build on: - push: - branches: [ master ] - pull_request: - branches: [ master ] + - push + - pull_request jobs: - php-build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - - name: Validate composer.json and composer.lock - run: composer validate - - - name: Install dependencies - run: composer install --prefer-dist --no-progress --no-suggest - - # Add a test script to composer.json, for instance: "test": "vendor/bin/phpunit" - # Docs: https://getcomposer.org/doc/articles/scripts.md - - - name: Run test suite - run: make check -k + php-build: + runs-on: ubuntu-latest + steps: + - name: Git checkout + uses: actions/checkout@v2 + + - name: Validate composer.json and composer.lock + run: composer validate + + - 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() + 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 -- cgit v1.2.3 From f9173c85ca612ad6cd90417ad423a9c9f94a1e99 Mon Sep 17 00:00:00 2001 From: n-peugnet Date: Tue, 21 Apr 2020 22:24:44 +0200 Subject: tests: add coverage report and badge --- .github/workflows/php.yml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml index a7414b5..479a9f9 100644 --- a/.github/workflows/php.yml +++ b/.github/workflows/php.yml @@ -22,8 +22,8 @@ jobs: - name: PHPStan xml report if: always() - run: > - mkdir -p build/phpstan && + run: | + mkdir -p build/phpstan vendor/bin/phpstan analyse --no-progress --error-format=checkstyle > build/phpstan/checkstyle.xml - name: Analysis Publisher @@ -36,3 +36,11 @@ jobs: --report-type=checkstyle --path=**/build/phpcs/checkstyle.xml --report-type=checkstyle --path=**/build/phpstan/checkstyle.xml --publisher=github_check + + - 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 -- cgit v1.2.3 From 03d425bdd9a639446ae72ce6556d753f2f162f83 Mon Sep 17 00:00:00 2001 From: n-peugnet Date: Thu, 23 Apr 2020 15:38:17 +0200 Subject: tests(ci): problemMatchers, 3 php versions, optims Add problem matchers for phpcs, phpstan and phpunit. Add composer cache Test over multiple php version --- .github/workflows/php.yml | 88 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 67 insertions(+), 21 deletions(-) (limited to '.github/workflows') 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::" -- cgit v1.2.3