-
-
Notifications
You must be signed in to change notification settings - Fork 2
135 lines (109 loc) · 3.28 KB
/
ci.yaml
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
124
125
126
127
128
129
130
131
132
133
134
135
# yamllint disable rule:line-length
# yamllint disable rule:braces
name: CI
on:
pull_request:
push:
branches:
- master
- main
env:
COMPOSER_ROOT_VERSION: 0.1.x-dev
jobs:
tests:
runs-on: ubuntu-latest
strategy:
matrix:
php-version: ['7.4', '8.0', '8.1', '8.2', '8.3']
coverage: ['pcov']
name: Test with PHP ${{ matrix.php-version }}
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
coverage: ${{ matrix.coverage }}
tools: composer:v2
- name: Validate composer.json
run: |
composer validate --strict
- name: Cache dependencies
uses: actions/cache@v2
with:
path: ~/.cache/composer
key: composer-${{ matrix.php-version }}-${{ hashFiles('composer.*') }}
restore-keys: |
composer-${{ matrix.php-version }}-
composer-
- name: Install dependencies
run: |
composer remove --no-update --dev --no-interaction --no-progress \
phan/phan phpstan/phpstan vimeo/psalm \
infection/infection friendsofphp/php-cs-fixer
composer update --prefer-dist --no-interaction --no-progress ${{ matrix.dependencies }}
- name: Execute tests
run: |
php vendor/bin/phpunit
validate:
name: Static Analysis and Validation
runs-on: ubuntu-latest
env:
PHP_VERSION: '8.2'
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ env.PHP_VERSION }}
extensions: ast
coverage: pcov
tools: composer:v2
- name: Cache dependencies
uses: actions/cache@v2
with:
path: ~/.cache/composer
key: composer-${{ env.PHP_VERSION }}-${{ hashFiles('composer.*') }}
restore-keys: |
composer-${{ env.PHP_VERSION }}-
composer-
- name: Install dependencies
run: |
composer update --prefer-dist --no-interaction --no-progress
- name: Validate composer.json
run: |
make composer-validate
- name: Static Analysis
run: |
make ci-analyze --keep-going
- name: Upload coverage report
continue-on-error: false
env:
COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
php vendor/bin/php-coveralls -v
coding-standards:
name: Coding Standards
runs-on: ubuntu-latest
env:
PHP_VERSION: '8.2'
PHP_CS_FIXER_VERSION: 'v3.35.1'
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ env.PHP_VERSION }}
tools: php-cs-fixer:${{ env.PHP_CS_FIXER_VERSION }}
- name: Restore PHP-CS-Fixer cache
uses: actions/cache@v2
with:
path: .php_cs.cache
key: php-cs-fixer
restore-keys: php-cs-fixer
- name: Run PHP-CS-Fixer, version ${{ env.PHP_CS_FIXER_VERSION }}
run: |
php-cs-fixer fix --diff --dry-run --verbose