[pull] master from php:master #203
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
# https://docs.github.com/en/actions | |
name: "Integrate" | |
on: | |
pull_request: null | |
push: | |
branches: | |
- "master" | |
jobs: | |
code-coverage: | |
name: "Code Coverage" | |
runs-on: "ubuntu-latest" | |
strategy: | |
matrix: | |
php-version: | |
- "8.2" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@v4" | |
- name: "Set up PHP" | |
uses: "shivammathur/setup-php@v2" | |
with: | |
coverage: "xdebug" | |
extensions: "none, curl, dom, json, mbstring, tokenizer, xml, xmlwriter" | |
php-version: "${{ matrix.php-version }}" | |
- name: "Set up problem matchers for PHP" | |
run: "echo \"::add-matcher::${{ runner.tool_cache }}/php.json\"" | |
- name: "Set up problem matchers for phpunit/phpunit" | |
run: "echo \"::add-matcher::${{ runner.tool_cache }}/phpunit.json\"" | |
- name: "Determine composer cache directory" | |
run: "echo \"COMPOSER_CACHE_DIR=$(composer config cache-dir)\" >> $GITHUB_ENV" | |
- name: "Cache dependencies installed with composer" | |
uses: "actions/cache@v4" | |
with: | |
path: "${{ env.COMPOSER_CACHE_DIR }}" | |
key: "php-${{ matrix.php-version }}-composer-${{ hashFiles('composer.lock') }}" | |
restore-keys: "php-${{ matrix.php-version }}-composer-" | |
- name: "Install dependencies with composer" | |
run: "composer install --ansi --no-interaction --no-progress" | |
- name: "Collect code coverage from running unit tests with phpunit/phpunit" | |
env: | |
XDEBUG_MODE: "coverage" | |
run: "vendor/bin/phpunit --colors=always --configuration=tests/phpunit.xml --coverage-text --testsuite=unit" | |
coding-standards: | |
name: "Coding Standards" | |
runs-on: "ubuntu-latest" | |
strategy: | |
matrix: | |
php-version: | |
- "8.2" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@v4" | |
- name: "Set up PHP" | |
uses: "shivammathur/setup-php@v2" | |
with: | |
coverage: "none" | |
extensions: "none, curl, dom, json, mbstring, tokenizer, xml, xmlwriter" | |
php-version: "${{ matrix.php-version }}" | |
- name: "Set up problem matchers for PHP" | |
run: "echo \"::add-matcher::${{ runner.tool_cache }}/php.json\"" | |
- name: "Validate composer.json and composer.lock" | |
run: "composer validate --ansi --strict" | |
- name: "Determine composer cache directory" | |
run: "echo \"COMPOSER_CACHE_DIR=$(composer config cache-dir)\" >> $GITHUB_ENV" | |
- name: "Cache dependencies installed with composer" | |
uses: "actions/cache@v4" | |
with: | |
path: "${{ env.COMPOSER_CACHE_DIR }}" | |
key: "php-${{ matrix.php-version }}-composer-${{ hashFiles('composer.lock') }}" | |
restore-keys: "php-${{ matrix.php-version }}-composer-" | |
- name: "Install dependencies with composer" | |
run: "composer install --ansi --no-interaction --no-progress" | |
- name: "Run friendsofphp/php-cs-fixer" | |
run: "vendor/bin/php-cs-fixer fix --ansi --config=.php-cs-fixer.php --diff --dry-run --show-progress=dots --verbose" | |
- name: "Get libxml2-utils" | |
run: | | |
set -x | |
export DEBIAN_FRONTEND=noninteractive | |
sudo apt-get update -y | true | |
sudo apt-get install -y libxml2-utils | |
- name: "Validate XML files" | |
run: "for a in $(find . -name '*.xml'); do xmllint --quiet --noout $a; done" | |
tests: | |
name: "Tests" | |
runs-on: "ubuntu-latest" | |
strategy: | |
matrix: | |
php-version: | |
- "8.2" | |
env: | |
HTTP_HOST: "localhost:8080" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@v4" | |
- name: "Set up PHP" | |
uses: "shivammathur/setup-php@v2" | |
with: | |
coverage: "none" | |
extensions: "none, curl, dom, json, mbstring, tokenizer, xml, xmlwriter" | |
php-version: "${{ matrix.php-version }}" | |
- name: "Set up problem matchers for PHP" | |
run: "echo \"::add-matcher::${{ runner.tool_cache }}/php.json\"" | |
- name: "Set up problem matchers for phpunit/phpunit" | |
run: "echo \"::add-matcher::${{ runner.tool_cache }}/phpunit.json\"" | |
- name: "Determine composer cache directory" | |
run: "echo \"COMPOSER_CACHE_DIR=$(composer config cache-dir)\" >> $GITHUB_ENV" | |
- name: "Cache dependencies installed with composer" | |
uses: "actions/cache@v4" | |
with: | |
path: "${{ env.COMPOSER_CACHE_DIR }}" | |
key: "php-${{ matrix.php-version }}-composer-${{ hashFiles('composer.lock') }}" | |
restore-keys: "php-${{ matrix.php-version }}-composer-" | |
- name: "Install dependencies with composer" | |
run: "composer install --ansi --no-interaction --no-progress" | |
- name: "Run unit tests with phpunit/phpunit" | |
run: "vendor/bin/phpunit --colors=always --configuration=tests/phpunit.xml --testsuite=unit" | |
- name: "Start built-in web server for PHP" | |
run: "php -S ${{ env.HTTP_HOST }} .router.php &" | |
- name: "Run end-to-end tests with phpunit/phpunit" | |
run: "vendor/bin/phpunit --colors=always --configuration=tests/phpunit.xml --testsuite=end-to-end" |