Require php 8.1 #512
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
# https://help.github.com/en/categories/automating-your-workflow-with-github-actions | |
name: "Continuous Integration" | |
on: | |
- "pull_request" | |
- "push" | |
jobs: | |
continuous-integration: | |
name: "Continuous Integration" | |
runs-on: "ubuntu-latest" | |
strategy: | |
matrix: | |
php-version: | |
- "8.1" | |
dependencies: | |
- "highest" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@v2" | |
- name: "Install PHP with extensions" | |
uses: "shivammathur/setup-php@v2" | |
with: | |
coverage: "pcov" | |
php-version: "${{ matrix.php-version }}" | |
- name: "Get current date for the daily cache" | |
id: 'date' | |
run: echo "::set-output name=date::$(date +'%Y-%m-%d')" | |
- name: "Cache the php documentation" | |
id: cache-php-doc | |
uses: "actions/cache@v1" | |
with: | |
path: "generator/doc/doc-en" | |
key: php-doc-${{ steps.date.outputs.date }} | |
- name: "Check out salathe/phpdoc-base" | |
uses: "actions/checkout@v2" | |
if: steps.cache-php-doc.outputs.cache-hit != 'true' | |
with: | |
path: "generator/doc/doc-en/doc-base" | |
repository: "salathe/phpdoc-base" | |
- name: "Check out php/doc-en" | |
uses: "actions/checkout@v2" | |
if: steps.cache-php-doc.outputs.cache-hit != 'true' | |
with: | |
path: "generator/doc/doc-en/en" | |
repository: "php/doc-en" | |
- name: "Cache dependencies installed with composer" | |
uses: "actions/cache@v1" | |
with: | |
path: "~/.composer/cache" | |
key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.lock') }}" | |
restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" | |
- name: "Install dependencies with composer in generator/ directory" | |
run: "composer install --no-interaction" | |
working-directory: "generator" | |
- name: "Install dependencies with composer in root directory" | |
run: "composer install --no-interaction" | |
- name: "Run tests with phpunit/phpunit in root directory" | |
run: "vendor/bin/phpunit" | |
- name: "Run tests with phpunit/phpunit in generator/ directory" | |
run: "vendor/bin/phpunit" | |
working-directory: "generator" | |
- name: "Run coding standard checks with squizlabs/php_codesniffer in generator/ directory" | |
run: "composer cs-check" | |
working-directory: "generator" | |
- name: "Run static code analysis with phpstan/phpstan in generator/ directory" | |
run: "composer phpstan" | |
working-directory: "generator" | |
- name: "Dump autoloader with composer in root directory" | |
run: "composer dump-autoload" | |
- name: "Run coding standard checks with squizlabs/php_codesniffer in root directory" | |
run: "composer cs-check" | |
- name: "Run static code analysis with phpstan/phpstan in root directory" | |
run: "composer phpstan" | |
- name: "Regenerate files" | |
run: "./safe.php generate" | |
working-directory: "generator" | |
- name: "Check if regenerated files are different" | |
run: | | |
if output=$(git status --porcelain) && [ -z "$output" ]; then | |
# all is good | |
echo "Generated files are the same as committed file: OK" | |
else | |
# Uncommitted changes | |
echo "Generated files are different from commited files. Please run './safe.php generate' command and commit the results." | |
echo "Detected changes:" | |
git status | |
git diff | |
echo "Generated files are different from commited files. Please run './safe.php generate' command and commit the results." | |
exit 1; | |
fi | |
- name: "Archive code coverage results" | |
uses: "actions/upload-artifact@v1" | |
with: | |
name: "build" | |
path: "generator/build" | |
- uses: codecov/codecov-action@v1 # upload the coverage to codecov | |
with: | |
fail_ci_if_error: true # optional (default = false) |