Skip to content

feat: better templates handling (#1835) #2290

feat: better templates handling (#1835)

feat: better templates handling (#1835) #2290

Workflow file for this run

name: 'Tests'
on:
workflow_dispatch:
push:
branches:
- master
paths-ignore:
- 'docs/**'
- '.github/**'
- 'scripts/**'
pull_request:
paths-ignore:
- 'docs/**'
- '.github/**'
- 'scripts/**'
jobs:
test:
name: 'PHP ${{ matrix.php }} on ${{ matrix.os }} (c=${{ matrix.coverage }}, p=${{ matrix.profiling }}, e=${{ matrix.experimental }})'
runs-on: ${{ matrix.os }}
continue-on-error: ${{ matrix.experimental }}
env:
extensions: mbstring, intl, gettext, fileinfo, gd
ext-cache-key: cache-ext-v1
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
php: ['7.4', '8.0', '8.1', '8.2']
coverage: [false]
experimental: [false]
profiling: [false]
exclude:
# excluded for code coverage
- os: 'ubuntu-latest'
php: '7.4'
coverage: false
profiling: false
experimental: false
include:
# code coverage
- os: 'ubuntu-latest'
php: '7.4'
coverage: true
profiling: false
experimental: false
# code profiling
- os: 'ubuntu-latest'
php: '8.1'
coverage: false
profiling: true
experimental: false
# PHP 8.2 JIT experimental
- os: 'ubuntu-latest'
php: '8.2'
coverage: false
profiling: false
experimental: true
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Setup cache extensions
id: extcache
uses: shivammathur/cache-extensions@v1
with:
php-version: ${{ matrix.php }}
extensions: ${{ env.extensions }}
key: ${{ env.ext-cache-key }}
- name: Cache extensions
uses: actions/cache@v3
with:
path: ${{ steps.extcache.outputs.dir }}
key: ${{ steps.extcache.outputs.key }}
restore-keys: ${{ steps.extcache.outputs.key }}
- name: Install PHP (standart)
if: ${{ !matrix.coverage && !matrix.profiling && !matrix.experimental }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: ${{ env.extensions }}
coverage: none
- name: Install PHP (coverage)
if: ${{ matrix.coverage && !matrix.profiling && !matrix.experimental }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: ${{ env.extensions }}
coverage: xdebug
- name: Install PHP (profiling)
if: ${{ !matrix.coverage && matrix.profiling && !matrix.experimental }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: ${{ env.extensions }}, blackfire, :xdebug
coverage: none
tools: blackfire
env:
BLACKFIRE_SERVER_ID: ${{ secrets.BLACKFIRE_SERVER_ID }}
BLACKFIRE_SERVER_TOKEN: ${{ secrets.BLACKFIRE_SERVER_TOKEN }}
BLACKFIRE_CLIENT_ID: ${{ secrets.BLACKFIRE_CLIENT_ID }}
BLACKFIRE_CLIENT_TOKEN: ${{ secrets.BLACKFIRE_CLIENT_TOKEN }}
- name: Install PHP (experimental with JIT)
if: ${{ !matrix.coverage && !matrix.profiling && matrix.experimental }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: ${{ env.extensions }}
ini-values: opcache.enable_cli=1, opcache.jit=tracing, opcache.jit_buffer_size=64M
coverage: none
- name: Cache Composer packages
id: composer-cache
uses: actions/cache@v3
with:
path: |
vendor
tests/fixtures/website/themes
key: composer-${{ runner.os }}-php-${{ matrix.php }}-${{ hashFiles('**/composer.lock') }}
restore-keys: composer-${{ runner.os }}-php-${{ matrix.php }}-
- name: Validate composer.json
if: steps.composer-cache.outputs.cache-hit != 'true'
run: |
composer validate
- name: Install dependencies
if: steps.composer-cache.outputs.cache-hit != 'true'
run: |
composer install --prefer-dist --no-progress
- name: Run code analyse
run: |
composer run-script code:analyse:gh
- name: Run code style checker
run: |
composer run-script code:style
- name: Run build test
if: ${{ !matrix.coverage && !matrix.profiling }}
run: |
composer run-script test
- name: Run build test (coverage)
if: ${{ matrix.coverage && !matrix.profiling && !matrix.experimental }}
run: |
composer run-script test:coverage
- name: Run build test (profiling)
if: ${{ !matrix.coverage && matrix.profiling && !matrix.experimental }}
env:
APP_ENV: prod
APP_DEBUG: 0
run: blackfire run php vendor/bin/phpunit -c ./ --testsuite=IntegrationTests
- name: Upload coverage results to Coveralls
if: ${{ matrix.coverage && !matrix.profiling && !matrix.experimental }}
continue-on-error: true
env:
COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
composer run-script test:coverage:install
composer run-script test:coverage:upload
- name: Build skeleton site from phar
if: ${{ !matrix.coverage && !matrix.profiling }}
run: |
composer run-script test:phar