Skip to content

Commit

Permalink
Merge pull request #14 from Oefenweb/use-github-actions
Browse files Browse the repository at this point in the history
Use github actions
  • Loading branch information
tersmitten authored Jan 15, 2021
2 parents 7653f99 + 55195b4 commit 519d858
Show file tree
Hide file tree
Showing 12 changed files with 1,085 additions and 245 deletions.
196 changes: 196 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,196 @@
---
name: CI
'on':
pull_request:
push:
branches:
- master
schedule:
- cron: '30 1 * * 3'

jobs:

syntax:
name: Syntax
runs-on: ubuntu-latest
strategy:
matrix:
include:
- php: 7.1
- php: 7.2
- php: 7.3
- php: 7.4
steps:
- name: Check out the codebase
uses: actions/checkout@v2

- name: Set up PHP
uses: shivammathur/setup-php@v2
with:
php-version: "${{ matrix.php }}"
coverage: none

- name: Lint code
run: |
[ "$(find . \( -path './vendor' \) -prune -o -type f \( -name '*.ctp' -o -name '*.php' \) -print0 | xargs -0 --no-run-if-empty -L1 -i'{}' php -l '{}' | grep -vc 'No syntax errors')" -eq 0 ]
test:
name: Test
runs-on: ubuntu-latest
needs:
- syntax
strategy:
fail-fast: false
matrix:
include:
- php: 7.1
- php: 7.2
- php: 7.3
- php: 7.4
steps:
- name: Check out the codebase
uses: actions/checkout@v2

- name: Set up PHP
uses: shivammathur/setup-php@v2
with:
php-version: "${{ matrix.php }}"
coverage: none

- name: Install dependencies
run: |
composer install --dev --no-ansi --no-progress --no-interaction --quiet;
- name: Test code
run: |
vendor/bin/phpunit --stderr --configuration phpunit.xml;
cs:
name: Cs
runs-on: ubuntu-latest
needs:
- test
strategy:
fail-fast: false
matrix:
include:
- php: 7.4
phpcs: true
- php: 7.4
phpmd: true
- php: 7.4
phpcpd: true
- php: 7.4
phpstan: true
- php: 7.4
phan: true
steps:
- name: Check out the codebase
uses: actions/checkout@v2

- name: Set up PHP
uses: shivammathur/setup-php@v2
with:
php-version: "${{ matrix.php }}"
coverage: none
extensions: ast
tools: cs2pr

- name: Install dependencies
run: |
composer install --dev --no-ansi --no-progress --no-interaction --quiet;
- name: Run phpcs
run: |
excludePaths=( \
'**/vendor' \
'**/.phan' \
);
excludePathsJoined=$(printf ",%s" "${excludePaths[@]}");
excludePathsJoined=${excludePathsJoined:1};
extensions=( \
'php' \
'ctp' \
);
extensionsJoined=$(printf ",%s" "${extensions[@]}");
extensionsJoined=${extensionsJoined:1};
vendor/bin/phpcs . \
--standard=PSR2 \
--extensions="${extensionsJoined}" \
--ignore="${excludePathsJoined}" \
--report=checkstyle | cs2pr;
if: matrix.phpcs

- name: Run phpcsmd
run: |
excludePaths=( \
'**/vendor' \
);
excludePathsJoined=$(printf ",%s" "${excludePaths[@]}");
excludePathsJoined=${excludePathsJoined:1};
vendor/bin/phpmd . xml phpmd.xml --suffixes php --exclude "${excludePathsJoined}" | cs2pr;
if: matrix.phpmd

- name: Run phpcpd
run: |
vendor/bin/phpcpd . \
--names '*.php,*.ctp' \
--exclude vendor \
--no-interaction \
--quiet \
--fuzzy \
--log-pmd 'php://stdout' | cs2pr;
if: matrix.phpcpd

- name: Run phpstan
run: |
vendor/bin/phpstan analyse -c phpstan.neon \
--no-ansi \
--no-progress \
--no-interaction \
--error-format=checkstyle | cs2pr;
if: matrix.phpstan

- name: Install phan
run: |
composer require --dev --no-ansi --no-progress --no-interaction --quiet 'phan/phan=^2.7.3';
if: matrix.phan

- name: Run phan
run: |
vendor/bin/phan -d . --no-color --no-progress-bar --output-mode checkstyle | cs2pr;
if: matrix.phan

coverage:
name: Coverage
runs-on: ubuntu-latest
needs:
- cs
strategy:
fail-fast: false
matrix:
include:
- php: 7.4
steps:
- name: Check out the codebase
uses: actions/checkout@v2

- name: Set up PHP
uses: shivammathur/setup-php@v2
with:
php-version: "${{ matrix.php }}"

- name: Install dependencies
run: |
composer install --dev --no-ansi --no-progress --no-interaction --quiet;
- name: Generate coverage report
run: |
phpdbg -qrr vendor/bin/phpunit --stderr --configuration phpunit.xml --coverage-clover build/logs/clover.xml;
- name: Upload coverage report
run: |
bash <(curl -sSL https://codecov.io/bash);
Loading

0 comments on commit 519d858

Please sign in to comment.