-
-
Notifications
You must be signed in to change notification settings - Fork 2
133 lines (110 loc) · 3.32 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
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow
name: CI
on:
pull_request:
push:
branches:
- master
- main
env:
COMPOSER_ROOT_VERSION: '0.1.x-dev'
jobs:
tests:
name: Test with PHP ${{ matrix.php-version }}
runs-on: ubuntu-latest
strategy:
matrix:
php-version: ['7.4', '8.0', '8.1', '8.2', '8.3']
coverage: ['pcov']
steps:
- name: Checkout repository
uses: actions/checkout@v4
- 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: |
make composer-validate
- name: Cache dependencies
uses: actions/cache@v3
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
- name: Execute tests
run: |
./vendor/bin/phpunit
validate:
name: Static Analysis and Validation
runs-on: ubuntu-latest
strategy:
matrix:
php-version: ['8.2']
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
extensions: ast
coverage: pcov
tools: composer:v2
- name: Cache dependencies
uses: actions/cache@v3
with:
path: ~/.cache/composer
key: composer-${{ matrix.php-version }}-${{ hashFiles('composer.*') }}
restore-keys: |
composer-${{ matrix.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: ${{ github.token }}
run: |
./vendor/bin/php-coveralls -v
coding-standards:
name: Coding Standards
runs-on: ubuntu-latest
strategy:
matrix:
php-version: ['8.2']
php-cs-fixer-version: ['v3.35.1']
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
tools: php-cs-fixer:${{ matrix.php-cs-fixer-version }}
- name: Restore PHP-CS-Fixer cache
uses: actions/cache@v3
with:
path: .php_cs.cache
key: php-cs-fixer
restore-keys: php-cs-fixer
- name: Run PHP-CS-Fixer ${{ matrix.php-cs-fixer-version }}
run: |
php-cs-fixer fix --diff --dry-run --verbose