Sync with CI pipeline configuration for PHPUnit
* Remove superfluous double-quotes * Configure timeout for jobs * Do not fetch tags * Cache Composer's cache directory * Introduce PHP_VERSION variable * Introduce separate job for code coverage * Test with PHP 8.6
This commit is contained in:
parent
e15d3843bb
commit
674f8e4778
|
|
@ -1,13 +1,14 @@
|
|||
# https://help.github.com/en/categories/automating-your-workflow-with-github-actions
|
||||
|
||||
on:
|
||||
- "pull_request"
|
||||
- "push"
|
||||
- pull_request
|
||||
- push
|
||||
|
||||
name: "CI"
|
||||
name: CI
|
||||
|
||||
env:
|
||||
COMPOSER_ROOT_VERSION: "5.1.x-dev"
|
||||
COMPOSER_ROOT_VERSION: 5.1.x-dev
|
||||
PHP_VERSION: 8.4
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
|
@ -17,16 +18,29 @@ jobs:
|
|||
name: Coding Guidelines
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 5
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
with:
|
||||
fetch-depth: 1
|
||||
ref: ${{ github.event.pull_request.head.sha || github.sha }}
|
||||
|
||||
- name: Use local branch
|
||||
shell: bash
|
||||
run: |
|
||||
BRANCH=$([ "${{ github.event_name }}" == "pull_request" ] && echo "${{ github.head_ref }}" || echo "${{ github.ref_name }}")
|
||||
git branch -D $BRANCH 2>/dev/null || true
|
||||
git branch $BRANCH HEAD
|
||||
git checkout $BRANCH
|
||||
|
||||
- name: Install PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: 8.3
|
||||
php-version: ${{ env.PHP_VERSION }}
|
||||
coverage: none
|
||||
tools: none
|
||||
|
||||
- name: Run PHP-CS-Fixer
|
||||
run: ./tools/php-cs-fixer fix --dry-run --show-progress=dots --using-cache=no --verbose
|
||||
|
|
@ -35,16 +49,29 @@ jobs:
|
|||
name: Type Checker
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 5
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
with:
|
||||
fetch-depth: 1
|
||||
ref: ${{ github.event.pull_request.head.sha || github.sha }}
|
||||
|
||||
- name: Use local branch
|
||||
shell: bash
|
||||
run: |
|
||||
BRANCH=$([ "${{ github.event_name }}" == "pull_request" ] && echo "${{ github.head_ref }}" || echo "${{ github.ref_name }}")
|
||||
git branch -D $BRANCH 2>/dev/null || true
|
||||
git branch $BRANCH HEAD
|
||||
git checkout $BRANCH
|
||||
|
||||
- name: Install PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: 8.3
|
||||
coverage: none
|
||||
tools: none
|
||||
|
||||
- name: Install dependencies with Composer
|
||||
run: ./tools/composer update --no-interaction --no-ansi --no-progress
|
||||
|
|
@ -56,34 +83,121 @@ jobs:
|
|||
name: Tests
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 5
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php-version:
|
||||
- "8.1"
|
||||
- "8.2"
|
||||
- "8.3"
|
||||
- "8.4"
|
||||
- "8.5"
|
||||
- 8.1
|
||||
- 8.2
|
||||
- 8.3
|
||||
- 8.4
|
||||
- 8.5
|
||||
- 8.6
|
||||
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: "actions/checkout@v4"
|
||||
|
||||
- name: "Install PHP with extensions"
|
||||
uses: "shivammathur/setup-php@v2"
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v5
|
||||
with:
|
||||
php-version: "${{ matrix.php-version }}"
|
||||
coverage: "xdebug"
|
||||
fetch-depth: 1
|
||||
ref: ${{ github.event.pull_request.head.sha || github.sha }}
|
||||
|
||||
- name: "Install dependencies with Composer"
|
||||
run: "./tools/composer update --no-ansi --no-interaction --no-progress"
|
||||
- name: Use local branch
|
||||
shell: bash
|
||||
run: |
|
||||
BRANCH=$([ "${{ github.event_name }}" == "pull_request" ] && echo "${{ github.head_ref }}" || echo "${{ github.ref_name }}")
|
||||
git branch -D $BRANCH 2>/dev/null || true
|
||||
git branch $BRANCH HEAD
|
||||
git checkout $BRANCH
|
||||
|
||||
- name: "Run tests with PHPUnit"
|
||||
run: "vendor/bin/phpunit --coverage-clover=coverage.xml"
|
||||
- name: Install PHP with extensions
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: ${{ matrix.php-version }}
|
||||
coverage: none
|
||||
tools: none
|
||||
|
||||
- name: "Send code coverage report to Codecov.io"
|
||||
env:
|
||||
CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}"
|
||||
run: "bash <(curl -s https://codecov.io/bash) || true"
|
||||
- name: Get Composer cache directory
|
||||
id: composer-cache
|
||||
shell: bash
|
||||
run: |
|
||||
echo "dir=$(composer config cache-files-dir)" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Cache Composer cache directory
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
|
||||
- name: Install dependencies with Composer
|
||||
run: ./tools/composer update --no-ansi --no-interaction --no-progress
|
||||
|
||||
- name: Run tests with PHPUnit
|
||||
run: vendor/bin/phpunit
|
||||
|
||||
code-coverage:
|
||||
name: Code Coverage
|
||||
|
||||
needs:
|
||||
- tests
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 5
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v5
|
||||
with:
|
||||
fetch-depth: 1
|
||||
ref: ${{ github.event.pull_request.head.sha || github.sha }}
|
||||
|
||||
- name: Use local branch
|
||||
shell: bash
|
||||
run: |
|
||||
BRANCH=$([ "${{ github.event_name }}" == "pull_request" ] && echo "${{ github.head_ref }}" || echo "${{ github.ref_name }}")
|
||||
git branch -D $BRANCH 2>/dev/null || true
|
||||
git branch $BRANCH HEAD
|
||||
git checkout $BRANCH
|
||||
|
||||
- name: Install PHP with extensions
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: ${{ matrix.php-version }}
|
||||
coverage: xdebug
|
||||
tools: none
|
||||
|
||||
- name: Get Composer cache directory
|
||||
id: composer-cache
|
||||
shell: bash
|
||||
run: |
|
||||
echo "dir=$(composer config cache-files-dir)" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Cache Composer cache directory
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
|
||||
- name: Install dependencies with Composer
|
||||
run: ./tools/composer update --no-ansi --no-interaction --no-progress
|
||||
|
||||
- name: Collect code coverage with PHPUnit
|
||||
run: vendor/bin/phpunit --log-junit test-results.xml --coverage-clover=code-coverage.xml
|
||||
|
||||
- name: Upload test results to Codecov.io
|
||||
if: ${{ !cancelled() }}
|
||||
uses: codecov/test-results-action@v1
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
disable_search: true
|
||||
files: ./test-results.xml
|
||||
|
||||
- name: Upload code coverage data to Codecov.io
|
||||
uses: codecov/codecov-action@v4
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
disable_search: true
|
||||
files: ./code-coverage.xml
|
||||
|
|
|
|||
Loading…
Reference in New Issue