-
-
Notifications
You must be signed in to change notification settings - Fork 63
130 lines (107 loc) · 4.17 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
124
125
126
127
128
129
130
name: Continuous Integration
on:
- push
- pull_request
jobs:
tests:
strategy:
matrix:
include:
- operating-system: 'ubuntu-latest'
php-version: '8.1'
php-ts: nts
continue-on-error: false
- operating-system: 'ubuntu-latest'
php-version: '8.2'
php-ts: nts
continue-on-error: false
- operating-system: 'ubuntu-latest'
php-version: '8.3'
php-ts: nts
continue-on-error: false
- operating-system: 'ubuntu-latest'
php-version: '8.2'
php-extensions: parallel
job-description: 'with ext-parallel'
php-ts: ts
static-analysis: none
style-fix: none
composer-require-checker-version: none
continue-on-error: true
- operating-system: 'ubuntu-latest'
php-version: '8.3'
php-extensions: parallel
job-description: 'with ext-parallel'
php-ts: ts
static-analysis: none
style-fix: none
composer-require-checker-version: none
continue-on-error: true
- operating-system: 'macos-latest'
php-version: '8.3'
job-description: 'on macOS'
php-ts: nts
continue-on-error: false
- operating-system: 'windows-latest'
php-version: '8.3'
job-description: 'on Windows'
php-ts: nts
continue-on-error: false
name: PHP ${{ matrix.php-version }} ${{ matrix.job-description }}
runs-on: ${{ matrix.operating-system }}
continue-on-error: ${{ matrix.continue-on-error }}
steps:
- name: Set git to use LF
run: |
git config --global core.autocrlf false
git config --global core.eol lf
- name: Checkout code
uses: actions/checkout@v2
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
extensions: ${{ matrix.php-extensions }}
env:
phpts: ${{ matrix.php-ts }}
fail-fast: true
- 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: 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
- name: Run process example
run: php examples/process.php
- name: Run tests
run: vendor/bin/phpunit ${{ matrix.phpunit-flags }}
- name: Run static analysis
run: vendor/bin/psalm.phar
if: matrix.static-analysis != 'none'
- name: Run style fixer
env:
PHP_CS_FIXER_IGNORE_ENV: 1
run: vendor/bin/php-cs-fixer --diff --dry-run -v fix
if: runner.os != 'Windows' && matrix.style-fix != 'none'
- name: Install composer-require-checker
run: php -r 'file_put_contents("composer-require-checker.phar", file_get_contents("https://github.com/maglnet/ComposerRequireChecker/releases/download/3.7.0/composer-require-checker.phar"));'
if: runner.os != 'Windows' && matrix.composer-require-checker-version != 'none'
- name: Run composer-require-checker
run: php composer-require-checker.phar check composer.json --config-file $PWD/composer-require-check.json
if: runner.os != 'Windows' && matrix.composer-require-checker-version != 'none'