Skip to content

Add PHPStan action #518

Add PHPStan action

Add PHPStan action #518

Workflow file for this run

name: Build
on:
push:
branches: [5.0, 5.1, 5.2]
pull_request:
branches: [5.0, 5.1, 5.2]
schedule:
- cron: "0 0 * * 5"
workflow_dispatch:
jobs:
PHPUnit-Memory:
strategy:
fail-fast: false
matrix:
php_versions: ['8.1', '8.2', '8.3']
runs-on: ubuntu-latest
name: PHPUnit - PHP ${{ matrix.php_versions }} - Memory SQLite
steps:
- uses: actions/checkout@v4
- name: Setup PHP, with composer and extensions
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php_versions }}
extensions: mbstring, dom, fileinfo, gd, memcached, redis, pdo_sqlite
coverage: xdebug
tools: pecl, composer
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Setup Redis-server
uses: supercharge/[email protected]
with:
redis-version: 6
- name: Setup Memcached
uses: niden/actions-memcached@v7
- name: Install Dependencies
run: composer install --prefer-dist --no-progress
- name: Npm Install
run: npm install
- name: Run Webpack
run: npm run dev
- name: Execute tests
run: |
echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
vendor/bin/phpunit
- name: Upload coverage to Codecov
if: github.event_name != 'schedule'
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./_meta/coverage.xml
fail_ci_if_error: true
PHPUnit-MySQL:
strategy:
fail-fast: false
matrix:
php_versions: ['8.1', '8.2', '8.3']
runs-on: ubuntu-latest
name: PHPUnit - PHP ${{ matrix.php_versions }} - MySQL
env:
DB_TEST_CONNECTION: mysql
DB_HOST: 127.0.0.1
DB_USER: userfrosting
DB_PASSWORD: password
DB_NAME: userfrosting
steps:
- uses: actions/checkout@v4
- name: Setup PHP, with composer and extensions
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php_versions }}
extensions: mbstring, dom, fileinfo, gd, memcached, redis, pdo_sqlite
coverage: xdebug
tools: pecl, composer
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Setup Redis-server
uses: supercharge/[email protected]
with:
redis-version: 6
- name: Setup Memcached
uses: niden/actions-memcached@v7
- name: Shutdown Ubuntu MySQL (SUDO)
run: sudo service mysql stop # Shutdown the Default MySQL, "sudo" is necessary, please not remove it
- name: Set up MySQL 8
uses: mirromutth/[email protected]
with:
mysql version: '8'
mysql database: 'userfrosting'
mysql user: 'userfrosting'
mysql password: 'password'
- name: Wait for MySQL
run: |
while ! mysqladmin ping --host=127.0.0.1 --password=password --silent; do
sleep 1
done
- name: Install Dependencies
run: composer install --prefer-dist --no-progress
- name: Npm Install
run: npm install
- name: Run Webpack
run: npm run dev
- name: Execute tests
run: |
echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
vendor/bin/phpunit
- name: Upload coverage to Codecov
if: github.event_name != 'schedule'
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./_meta/coverage.xml
fail_ci_if_error: true
PHPUnit-MariaDB:
strategy:
fail-fast: false
matrix:
php_versions: ['8.1', '8.2', '8.3']
runs-on: ubuntu-latest
name: PHPUnit - PHP ${{ matrix.php_versions }} - MariaDB
env:
DB_TEST_CONNECTION: mysql
DB_HOST: 127.0.0.1
DB_USER: userfrosting
DB_PASSWORD: password
DB_NAME: userfrosting
steps:
- uses: actions/checkout@v4
- name: Setup PHP, with composer and extensions
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php_versions }}
extensions: mbstring, dom, fileinfo, gd, memcached, redis, pdo_sqlite
coverage: xdebug
tools: pecl, composer
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Setup Redis-server
uses: supercharge/[email protected]
with:
redis-version: 6
- name: Setup Memcached
uses: niden/actions-memcached@v7
- name: Shutdown Ubuntu MySQL (SUDO)
run: sudo service mysql stop # Shutdown the Default MySQL, "sudo" is necessary, please not remove it
- name: Set up MariaDB
uses: getong/[email protected]
with:
mysql database: 'userfrosting'
mysql user: 'userfrosting'
mysql password: 'password'
- name: Install Dependencies
run: composer install --prefer-dist --no-progress
- name: Npm Install
run: npm install
- name: Run Webpack
run: npm run dev
- name: Execute tests
run: |
echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
vendor/bin/phpunit
- name: Upload coverage to Codecov
if: github.event_name != 'schedule'
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./_meta/coverage.xml
fail_ci_if_error: true
PHPUnit-SQLite:
strategy:
fail-fast: false
matrix:
php_versions: ['8.1', '8.2', '8.3']
runs-on: ubuntu-latest
name: PHPUnit - PHP ${{ matrix.php_versions }} - SQLite
env:
DB_TEST_CONNECTION: sqlite
DB_NAME: database.sqlite
steps:
- uses: actions/checkout@v4
- name: Setup PHP, with composer and extensions
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php_versions }}
extensions: mbstring, dom, fileinfo, gd, memcached, redis, pdo_sqlite
coverage: xdebug
tools: pecl, composer
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Setup Redis-server
uses: supercharge/[email protected]
with:
redis-version: 6
- name: Setup Memcached
uses: niden/actions-memcached@v7
- name: Install Dependencies
run: composer install --prefer-dist --no-progress
- name: Npm Install
run: npm install
- name: Run Webpack
run: npm run dev
- name: Create SQLite Database
run: touch database.sqlite
- name: Execute tests
run: |
echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
vendor/bin/phpunit
- name: Upload coverage to Codecov
if: github.event_name != 'schedule'
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./_meta/coverage.xml
fail_ci_if_error: true
PHPUnit-Postgre:
strategy:
fail-fast: false
matrix:
php_versions: ['8.1', '8.2', '8.3']
runs-on: ubuntu-latest
name: PHPUnit - PHP ${{ matrix.php_versions }} - PostgreSQL
env:
DB_TEST_CONNECTION: pgsql
DB_USER: userfrosting
DB_PASSWORD: password
DB_NAME: userfrosting
steps:
- uses: actions/checkout@v4
- name: Setup PHP, with composer and extensions
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php_versions }}
extensions: mbstring, dom, fileinfo, gd, memcached, redis, pdo_sqlite, pdo_pgsql
coverage: xdebug
tools: pecl, composer
- name: Setup PostgreSQL
uses: harmon758/postgresql-action@v1
with:
postgresql db: 'userfrosting'
postgresql user: 'userfrosting'
postgresql password: 'password'
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Setup Redis-server
uses: supercharge/[email protected]
with:
redis-version: 6
- name: Setup Memcached
uses: niden/actions-memcached@v7
- name: Install Dependencies
run: composer install --prefer-dist --no-progress
- name: Npm Install
run: npm install
- name: Run Webpack
run: npm run dev
- name: Execute tests
run: |
echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
vendor/bin/phpunit
- name: Upload coverage to Codecov
if: github.event_name != 'schedule'
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./_meta/coverage.xml
fail_ci_if_error: true
PHPUnit-Windows:
strategy:
fail-fast: false
matrix:
php_versions: ['8.1', '8.2', '8.3']
runs-on: windows-latest
name: PHPUnit - PHP ${{ matrix.php_versions }} - Windows
env:
DB_TEST_CONNECTION: sqlite
DB_NAME: database.sqlite
steps:
- uses: actions/checkout@v4
- name: Setup PHP, with composer and extensions
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php_versions }}
extensions: mbstring, dom, fileinfo, gd, pdo, sqlite, pdo_sqlite
coverage: xdebug
tools: pecl, composer
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Install Dependencies
run: composer install --prefer-dist --no-progress
- name: Npm Install
run: npm install
- name: Run Webpack
run: npm run dev
- name: Create SQLite Database
run: touch database.sqlite
- name: Execute tests
run: |
echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
vendor/bin/phpunit
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./_meta/coverage.xml
fail_ci_if_error: true