-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
123 lines (102 loc) · 4.41 KB
/
ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
name: CI
on:
- pull_request
- push
jobs:
tests:
strategy:
matrix:
include:
- operating-system: 'ubuntu-20.04'
php-version: '5.6'
composer-flags: '--prefer-stable --prefer-lowest' # should be checked on lowest supported PHP version
- operating-system: 'ubuntu-20.04'
php-version: '7.0'
job-description: 'with Sf ^3'
execute-flex-with-symfony-version: '^3' # Explicit check for Sf 3.x compatibility
- operating-system: 'ubuntu-20.04'
php-version: '7.1'
job-description: 'with Sf ^4'
execute-flex-with-symfony-version: '^4' # Explicit check for Sf 4.x compatibility
- operating-system: 'ubuntu-20.04'
php-version: '7.2'
job-description: 'with Sf ^5'
execute-flex-with-symfony-version: '^5' # Explicit check for Sf 5.x compatibility
- operating-system: 'ubuntu-20.04'
php-version: '7.3'
job-description: 'with legacy Tokenizer' # should be checked on any job, one is enough
PHP_CS_FIXER_TEST_USE_LEGACY_TOKENIZER: 1
SYMFONY_DEPRECATIONS_HELPER: 'disabled'
- operating-system: 'ubuntu-20.04'
php-version: '7.4'
job-description: 'with migration rules'
execute-migration-rules: 'yes' # should be checked on highest supported PHP version
- operating-system: 'ubuntu-20.04'
php-version: '8.0'
composer-flags: '--ignore-platform-req=php' # as this is a version not yet officially supported by PHP CS Fixer
PHP_CS_FIXER_IGNORE_ENV: 1
- operating-system: 'windows-latest'
php-version: '7.4'
job-description: 'on Windows'
FAST_LINT_TEST_CASES: 1
- operating-system: 'macos-latest'
php-version: '7.4'
job-description: 'on macOS'
name: PHP ${{ matrix.php-version }} ${{ matrix.job-description }}
runs-on: ${{ matrix.operating-system }}
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
coverage: none
tools: flex
env:
fail-fast: false # disabled as old PHP version cannot run flex
- name: Get Composer cache directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-dir)"
- name: Cache dependencies
uses: actions/cache@v2
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: composer-${{ runner.os }}-${{ matrix.php-version }}-${{ hashFiles('**/composer.*') }}-${{ matrix.composer-flags }}
restore-keys: |
composer-${{ runner.os }}-${{ matrix.php-version }}-${{ hashFiles('**/composer.*') }}-
composer-${{ runner.os }}-${{ matrix.php-version }}-
composer-${{ runner.os }}-
composer-
- name: Configure Symfony Flex
run: |
composer config extra.symfony.require ${{ matrix.execute-flex-with-symfony-version }}
if: "matrix.execute-flex-with-symfony-version"
- name: Install dependencies
uses: nick-invision/retry@v2
with:
timeout_minutes: 5
max_attempts: 5
retry_wait_seconds: 30
command: |
composer update --optimize-autoloader --no-interaction --no-progress ${{ matrix.composer-flags }}
composer info -D | sort
- name: Execute migration rules
run: |
php php-cs-fixer fix --rules @PHP73Migration,@PHP71Migration:risky,blank_line_after_opening_tag -q
if: "matrix.execute-migration-rules == 'yes'"
- name: Run tests
continue-on-error: ${{ matrix.php-version == '8.0' }}
env:
PHP_CS_FIXER_IGNORE_ENV: ${{ matrix.PHP_CS_FIXER_IGNORE_ENV }}
FAST_LINT_TEST_CASES: ${{ matrix.FAST_LINT_TEST_CASES }}
PHP_CS_FIXER_TEST_USE_LEGACY_TOKENIZER: ${{ matrix.PHP_CS_FIXER_TEST_USE_LEGACY_TOKENIZER }}
SYMFONY_DEPRECATIONS_HELPER: ${{ matrix.SYMFONY_DEPRECATIONS_HELPER }}
run: |
vendor/bin/phpunit
- name: Run PHP CS Fixer
env:
PHP_CS_FIXER_IGNORE_ENV: ${{ matrix.PHP_CS_FIXER_IGNORE_ENV }}
PHP_CS_FIXER_FUTURE_MODE: 1
run: |
php php-cs-fixer --diff --dry-run -v fix