Skip to content

Merge pull request #453 from browscap/dependabot/composer/league/flys… #473

Merge pull request #453 from browscap/dependabot/composer/league/flys…

Merge pull request #453 from browscap/dependabot/composer/league/flys… #473

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