Init
This commit is contained in:
192
.github/workflows/main.yaml
vendored
Normal file
192
.github/workflows/main.yaml
vendored
Normal file
@@ -0,0 +1,192 @@
|
||||
name: "build"
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
paths-ignore:
|
||||
- ".docs/**"
|
||||
push:
|
||||
branches:
|
||||
- "*"
|
||||
schedule:
|
||||
- cron: "0 8 * * 1" # At 08:00 on Monday
|
||||
|
||||
env:
|
||||
extensions: "json"
|
||||
cacheVersion: "1"
|
||||
composerVersion: "v2"
|
||||
composerInstall: "composer install"
|
||||
|
||||
jobs:
|
||||
qa:
|
||||
name: "Quality Assurance"
|
||||
runs-on: "${{ matrix.operating-system }}"
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: [ "8.0" ]
|
||||
operating-system: [ "ubuntu-latest" ]
|
||||
fail-fast: false
|
||||
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: "actions/checkout@v2"
|
||||
|
||||
- name: "Setup PHP cache environment"
|
||||
id: "extcache"
|
||||
uses: "shivammathur/cache-extensions@v1"
|
||||
with:
|
||||
php-version: "${{ matrix.php-versions }}"
|
||||
extensions: "${{ env.extensions }}"
|
||||
key: "${{ env.cacheVersion }}"
|
||||
|
||||
- name: "Cache PHP extensions"
|
||||
uses: "actions/cache@v2"
|
||||
with:
|
||||
path: "${{ steps.extcache.outputs.dir }}"
|
||||
key: "${{ steps.extcache.outputs.key }}"
|
||||
restore-keys: "${{ steps.extcache.outputs.key }}"
|
||||
|
||||
- name: "Install PHP"
|
||||
uses: "shivammathur/setup-php@v2"
|
||||
with:
|
||||
php-version: "${{ matrix.php-versions }}"
|
||||
extensions: "${{ env.extensions }}"
|
||||
tools: "composer:${{ env.composerVersion }} "
|
||||
|
||||
- name: "Setup problem matchers for PHP"
|
||||
run: 'echo "::add-matcher::${{ runner.tool_cache }}/php.json"'
|
||||
|
||||
- name: "Get Composer cache directory"
|
||||
id: "composercache"
|
||||
run: 'echo "::set-output name=dir::$(composer config cache-files-dir)"'
|
||||
|
||||
- name: "Cache PHP dependencies"
|
||||
uses: "actions/cache@v2"
|
||||
with:
|
||||
path: "${{ steps.composercache.outputs.dir }}"
|
||||
key: "${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}"
|
||||
restore-keys: "${{ runner.os }}-composer-"
|
||||
|
||||
- name: "Validate Composer"
|
||||
run: "composer validate"
|
||||
|
||||
- name: "Install dependencies"
|
||||
run: "${{ env.composerInstall }}"
|
||||
|
||||
- name: "Coding Standard"
|
||||
run: "make cs"
|
||||
|
||||
static-analysis:
|
||||
name: "Static analysis"
|
||||
runs-on: "${{ matrix.operating-system }}"
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: [ "8.0" ]
|
||||
operating-system: [ "ubuntu-latest" ]
|
||||
fail-fast: false
|
||||
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: "actions/checkout@v2"
|
||||
|
||||
- name: "Setup PHP cache environment"
|
||||
id: "extcache"
|
||||
uses: "shivammathur/cache-extensions@v1"
|
||||
with:
|
||||
php-version: "${{ matrix.php-versions }}"
|
||||
extensions: "${{ env.extensions }}"
|
||||
key: "${{ env.cacheVersion }}"
|
||||
|
||||
- name: "Cache PHP extensions"
|
||||
uses: "actions/cache@v2"
|
||||
with:
|
||||
path: "${{ steps.extcache.outputs.dir }}"
|
||||
key: "${{ steps.extcache.outputs.key }}"
|
||||
restore-keys: "${{ steps.extcache.outputs.key }}"
|
||||
|
||||
- name: "Install PHP"
|
||||
uses: "shivammathur/setup-php@v2"
|
||||
with:
|
||||
php-version: "${{ matrix.php-versions }}"
|
||||
extensions: "${{ env.extensions }}"
|
||||
tools: "composer:${{ env.composerVersion }} "
|
||||
|
||||
- name: "Setup problem matchers for PHP"
|
||||
run: 'echo "::add-matcher::${{ runner.tool_cache }}/php.json"'
|
||||
|
||||
- name: "Get Composer cache directory"
|
||||
id: "composercache"
|
||||
run: 'echo "::set-output name=dir::$(composer config cache-files-dir)"'
|
||||
|
||||
- name: "Cache PHP dependencies"
|
||||
uses: "actions/cache@v2"
|
||||
with:
|
||||
path: "${{ steps.composercache.outputs.dir }}"
|
||||
key: "${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}"
|
||||
restore-keys: "${{ runner.os }}-composer-"
|
||||
|
||||
- name: "Install dependencies"
|
||||
run: "${{ env.composerInstall }}"
|
||||
|
||||
- name: "PHPStan"
|
||||
run: "make phpstan"
|
||||
|
||||
tests:
|
||||
name: "Tests"
|
||||
runs-on: "${{ matrix.operating-system }}"
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: [ "8.0" ]
|
||||
operating-system: [ "ubuntu-latest" ]
|
||||
fail-fast: false
|
||||
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: "actions/checkout@v2"
|
||||
|
||||
- name: "Setup PHP cache environment"
|
||||
id: "extcache"
|
||||
uses: "shivammathur/cache-extensions@v1"
|
||||
with:
|
||||
php-version: "${{ matrix.php-versions }}"
|
||||
extensions: "${{ env.extensions }}"
|
||||
key: "${{ env.cacheVersion }}"
|
||||
|
||||
- name: "Cache PHP extensions"
|
||||
uses: "actions/cache@v2"
|
||||
with:
|
||||
path: "${{ steps.extcache.outputs.dir }}"
|
||||
key: "${{ steps.extcache.outputs.key }}"
|
||||
restore-keys: "${{ steps.extcache.outputs.key }}"
|
||||
|
||||
- name: "Install PHP"
|
||||
uses: "shivammathur/setup-php@v2"
|
||||
with:
|
||||
php-version: "${{ matrix.php-versions }}"
|
||||
extensions: "${{ env.extensions }}"
|
||||
tools: "composer:${{ env.composerVersion }} "
|
||||
|
||||
- name: "Setup problem matchers for PHP"
|
||||
run: 'echo "::add-matcher::${{ runner.tool_cache }}/php.json"'
|
||||
|
||||
- name: "Get Composer cache directory"
|
||||
id: "composercache"
|
||||
run: 'echo "::set-output name=dir::$(composer config cache-files-dir)"'
|
||||
|
||||
- name: "Cache PHP dependencies"
|
||||
uses: "actions/cache@v2"
|
||||
with:
|
||||
path: "${{ steps.composercache.outputs.dir }}"
|
||||
key: "${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}"
|
||||
restore-keys: "${{ runner.os }}-composer-"
|
||||
|
||||
- name: "Install dependencies"
|
||||
run: "${{ env.composerInstall }}"
|
||||
|
||||
- name: "Setup problem matchers for PHPUnit"
|
||||
run: 'echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"'
|
||||
|
||||
- name: "Tests"
|
||||
run: "make tests"
|
||||
Reference in New Issue
Block a user