Update README #8
Workflow file for this run
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
name: CI | |
on: [push, pull_request] | |
jobs: | |
psalm: | |
name: Psalm | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Psalm | |
uses: docker://vimeo/psalm-github-actions | |
with: | |
security_analysis: true | |
report_file: results.sarif | |
composer_ignore_platform_reqs: true | |
- name: Upload Security Analysis results to GitHub | |
uses: github/codeql-action/upload-sarif@v3 | |
with: | |
sarif_file: results.sarif | |
# we may use whatever way to install phpcs, just specify the path on the next step | |
# however, curl seems to be the fastest | |
- name: Install PHP_CodeSniffer | |
run: | | |
curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar | |
php phpcs.phar --version | |
- uses: tinovyatkin/action-php-codesniffer@v1 | |
with: | |
files: "**.php" # you may customize glob as needed | |
phpcs_path: php phpcs.phar | |
standard: phpcs.xml | |
integrationtest: | |
runs-on: ubuntu-latest | |
name: Behat | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: 8.2 | |
- name: Cache Composer packages | |
id: composer-cache | |
uses: actions/cache@v4 | |
with: | |
path: vendor | |
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }} | |
restore-keys: | | |
${{ runner.os }}-php- | |
- name: Install dependencies | |
run: composer install --prefer-dist --no-progress | |
- name: Run containers | |
run: docker-compose up -d --quiet-pull | |
- name: Wait for XMPP to become available | |
uses: iFaxity/wait-on-action@v1 | |
with: | |
resource: tcp:localhost:5222 | |
timeout: 1800000 | |
interval: 10000 | |
delay: 60000 | |
log: true | |
- name: Run test suite | |
run: ./vendor/bin/behat | |
- name: Stop containers | |
if: always() | |
run: docker-compose down --volumes | |
unittest: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
php: | |
- version: 5.3 | |
phpunit: 4.8 | |
compat: true | |
coverage: false | |
- version: 5.4 | |
phpunit: 4.8 | |
compat: true | |
coverage: false | |
- version: 5.5 | |
phpunit: 4.8 | |
compat: true | |
coverage: false | |
- version: 5.6 | |
phpunit: 5.7 | |
compat: true | |
coverage: false | |
- version: 7.0 | |
phpunit: 6.5 | |
compat: true | |
coverage: false | |
- version: 7.1 | |
phpunit: 7.5 | |
compat: true | |
coverage: false | |
- version: 7.2 | |
phpunit: 8.5 | |
coverage: false | |
- version: 7.3 | |
phpunit: 9.5 | |
coverage: false | |
- version: 7.4 | |
phpunit: 9.5 | |
coverage: false | |
- version: 8.0 | |
phpunit: 9.5 | |
coverage: false | |
- version: 8.1 | |
phpunit: 9.5 | |
coverage: false | |
- version: 8.2 | |
phpunit: 10.0 | |
coverage: true | |
- version: 8.3 | |
phpunit: 10.0 | |
coverage: false | |
prefer-lowest: ['', '--prefer-lowest'] | |
name: Unit Tests - PHP ${{ matrix.php.version }} ${{ matrix.prefer-lowest }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php.version }} | |
extensions: mbstring | |
- name: Validate composer.json and composer.lock | |
run: composer validate --strict | |
- name: Cache Composer packages | |
id: composer-cache | |
uses: actions/cache@v4 | |
with: | |
path: vendor | |
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }} | |
restore-keys: | | |
${{ runner.os }}-php- | |
- name: Remove static analyse tools | |
run: | | |
composer remove --dev --with-all-dependencies --ignore-platform-reqs \ | |
squizlabs/php_codesniffer vimeo/psalm slevomat/coding-standard | |
- name: Update dependencies | |
run: composer update --prefer-dist --no-progress --with-all-dependencies ${{ matrix.prefer-lowest }} | |
- name: Require compatible PHPUnit version | |
run: composer require --dev --with-all-dependencies "phpunit/phpunit:^${{ matrix.php.phpunit }}" | |
- name: Make Unit tests compatible | |
if: ${{ matrix.php.compat }} | |
run: /bin/bash tests/compat.sh | |
- name: Run test suite | |
if: ${{ ! matrix.php.coverage }} | |
run: | | |
./vendor/bin/phpunit \ | |
--no-configuration \ | |
tests/src/ | |
- name: Run test suite with code coverage | |
if: ${{ matrix.php.coverage }} | |
run: | | |
./vendor/bin/phpunit \ | |
--no-configuration \ | |
--coverage-clover build/logs/clover.xml \ | |
--coverage-filter src/ \ | |
tests/src/ | |
env: | |
XDEBUG_MODE: coverage | |
- name: Run Scrutinizer | |
if: ${{ matrix.php.coverage }} | |
run: | | |
wget -q https://scrutinizer-ci.com/ocular.phar | |
php ocular.phar code-coverage:upload --format=php-clover build/logs/clover.xml || true |