Merge pull request #453 from browscap/dependabot/composer/league/flys… #473
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
name: Continuous Integration | |
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
jobs: | |
unit-tests: | |
name: "Unit tests" | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
php-version: | |
- "8.1" | |
env: | |
DB_USER: root | |
DB_PASSWORD: root | |
DB_DATABASE: browscap | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Configure application DB credentials | |
uses: DamianReeves/write-file-action@v1.0 | |
with: | |
path: config/autoload/local.php | |
contents: | | |
<?php | |
declare(strict_types=1); | |
return [ | |
'db' => [ | |
'dsn' => 'mysql:dbname=${{ env.DB_DATABASE }}', | |
'user' => '${{ env.DB_USER }}', | |
'pass' => '${{ env.DB_PASSWORD }}', | |
], | |
'debug' => false, | |
]; | |
write-mode: overwrite | |
- name: Run MySQL | |
run: | | |
sudo /etc/init.d/mysql start | |
mysql -e 'CREATE DATABASE ${{ env.DB_DATABASE }};' --user=${{ env.DB_USER }} --password=${{ env.DB_PASSWORD }} | |
- name: Load MySQL schema | |
run: mysql --user=${{ env.DB_USER }} --password=${{ env.DB_PASSWORD }} ${{ env.DB_DATABASE }} < db/create004.sql | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php-version }} | |
extensions: bcmath, curl, dom, intl, json, mbstring, pdo, pdo_mysql, xml, zip | |
coverage: none | |
- name: Cache dependencies | |
uses: actions/cache@v2 | |
with: | |
path: | | |
~/.composer/cache | |
vendor | |
key: php-${{ matrix.php-version }}-${{ hashFiles('**/composer.lock') }} | |
restore-keys: php-${{ matrix.php-version }}- | |
- name: Install dependencies | |
# 200 here represents the \Monolog\Logger::INFO constant for log levels | |
run: BC_BUILD_LOG=200 composer install --prefer-dist --no-interaction | |
- name: Run unit tests | |
run: vendor/bin/phpunit | |
composer-validate: | |
name: "Composer validate" | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
php-version: | |
- "8.1" | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php-version }} | |
extensions: bcmath, curl, dom, intl, json, mbstring, pdo, pdo_mysql, xml, zip | |
coverage: none | |
- name: Validate composer.json and composer.lock | |
run: composer validate | |
coding-standards: | |
name: "Coding standards" | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
php-version: | |
- "8.1" | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php-version }} | |
extensions: bcmath, curl, dom, intl, json, mbstring, pdo, pdo_mysql, xml, zip | |
coverage: none | |
- name: Cache dependencies | |
uses: actions/cache@v2 | |
with: | |
path: | | |
~/.composer/cache | |
vendor | |
key: php-${{ matrix.php-version }}-${{ hashFiles('**/composer.lock') }} | |
restore-keys: php-${{ matrix.php-version }}- | |
- name: Install dependencies | |
run: composer install --prefer-dist --no-interaction | |
- name: Run CS check | |
run: vendor/bin/phpcs | |
static-analysis: | |
name: "Static Analysis" | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
php-version: | |
- "8.1" | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php-version }} | |
extensions: bcmath, curl, dom, intl, json, mbstring, pdo, pdo_mysql, xml, zip | |
coverage: none | |
- name: Cache dependencies | |
uses: actions/cache@v2 | |
with: | |
path: | | |
~/.composer/cache | |
vendor | |
key: php-${{ matrix.php-version }}-${{ hashFiles('**/composer.lock') }} | |
restore-keys: php-${{ matrix.php-version }}- | |
- name: Install dependencies | |
run: composer install --prefer-dist --no-interaction | |
- name: Run static analysis check | |
run: vendor/bin/psalm |