psalm-plugin-symfony/.github/workflows/integrate.yaml
Anton Zagorskii c8cea86f11
test symfony version typo fix (#58)
Co-authored-by: Anton Zagorskii <anton@paytronix.io>
2020-07-20 10:09:39 +03:00

135 lines
4.4 KiB
YAML

# https://help.github.com/en/categories/automating-your-workflow-with-github-actions
name: "Integrate"
on:
pull_request: ~
push:
branches:
- master
jobs:
static-code-analysis:
name: "Static Code Analysis"
runs-on: ubuntu-latest
strategy:
matrix:
php-version:
- 7.4
dependencies:
- highest
steps:
- name: "Checkout"
uses: actions/checkout@v2
- name: "Install PHP with extensions"
uses: shivammathur/setup-php@v2
with:
coverage: none
php-version: ${{ matrix.php-version }}
- name: "Determine composer cache directory"
id: determine-composer-cache-directory
run: echo "::set-output name=directory::$(composer config cache-dir)"
- name: "Cache dependencies installed with composer"
uses: actions/cache@v1
with:
path: ${{ steps.determine-composer-cache-directory.outputs.directory }}
key: php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.json') }}
restore-keys: php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-
- name: "Install highest dependencies from composer.json"
if: matrix.dependencies == 'highest'
run: composer install --no-interaction --no-progress --no-suggest
- name: "Cache cache directory for vimeo/psalm"
uses: actions/cache@v1
with:
path: .build/psalm
key: php-${{ matrix.php-version }}-psalm-${{ github.sha }}
restore-keys: php-${{ matrix.php-version }}-psalm-
- name: "Run vimeo/psalm"
run: vendor/bin/psalm --find-dead-code --find-unused-psalm-suppress --diff --diff-methods --shepherd --show-info=false --stats --output-format=github
tests:
name: "Tests"
runs-on: ubuntu-latest
strategy:
matrix:
php-version:
- 7.1
- 7.2
- 7.3
- 7.4
symfony-version:
- 3
- 4
- 5
exclude:
- php-version: 7.1
symfony-version: 5
steps:
- name: "Checkout"
uses: actions/checkout@v2
- name: "Install PHP with extensions"
uses: shivammathur/setup-php@v2
with:
coverage: none
php-version: ${{ matrix.php-version }}
- name: "Determine composer cache directory"
id: determine-composer-cache-directory
run: echo "::set-output name=directory::$(composer config cache-dir)"
- name: "Cache dependencies installed with composer"
uses: actions/cache@v1
with:
path: ${{ steps.determine-composer-cache-directory.outputs.directory }}
key: php-${{ matrix.php-version }}-composer-${{ matrix.symfony-version }}-${{ hashFiles('composer.json') }}
restore-keys: php-${{ matrix.php-version }}-composer-${{ matrix.symfony-version }}-
- name: "Install symfony 3 dependencies from composer.json"
if: matrix.symfony-version == '3'
run: composer require symfony/framework-bundle ^3.0 --prefer-stable --update-with-all-dependencies --no-interaction --no-progress --no-suggest
- name: "Install Symfony 4 dependencies from composer.json"
if: matrix.symfony-version == '4'
run: composer require symfony/framework-bundle ^4.0 --prefer-stable --update-with-all-dependencies --no-interaction --no-progress --no-suggest
- name: "Install Symfony 5 dependencies from composer.json"
if: matrix.symfony-version == '5'
run: composer require symfony/framework-bundle ^5.0 --prefer-stable --update-with-all-dependencies --no-interaction --no-progress --no-suggest
- name: "Run unit tests with phpunit"
run: vendor/bin/phpunit --configuration=phpunit.xml
- name: "Build acceptance tests with codeception"
run: vendor/bin/codecept build
- name: "Run base acceptance tests with codeception"
run: vendor/bin/codecept run -v -g symfony-common
- name: "Run Symfony 3 acceptance tests with codeception"
if: matrix.symfony-version == '3'
run: vendor/bin/codecept run -v -g symfony-3
- name: "Run symfony 4 acceptance tests with codeception"
if: matrix.symfony-version == '4'
run: vendor/bin/codecept run -v -g symfony-4
- name: "Run Symfony 5 acceptance tests with codeception"
if: matrix.symfony-version == '5'
run: vendor/bin/codecept run -v -g symfony-5