-
Notifications
You must be signed in to change notification settings - Fork 2
135 lines (119 loc) · 3.57 KB
/
main.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
131
132
133
134
135
name: CI Tests
on:
push:
branches:
- develop
pull_request:
# Cancels all previous workflow runs for the same branch that have not yet completed.
concurrency:
# The concurrency group contains the workflow name and the branch name.
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
run-phpcs:
name: Run PHPCS
runs-on: ubuntu-latest
strategy:
matrix:
php-version: [ "8.1", "8.2", "8.3" ]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup
id: ci-setup
uses: ./.github/actions/ci-setup
with:
extensions: 'curl'
extensions-cache-key: run-phpcs-${{ matrix.php-version }}
php-version: ${{ matrix.php-version }}
token: ${{ secrets.GITHUB_TOKEN }}
tools: 'composer, cs2pr, phpcs'
- name: Run PHPCS
continue-on-error: false
id: phpcs
run: composer phpcs
env:
CHANGED_FILES: ${{ steps.ci-setup.outputs.files }}
PHP_VERSION: ${{ matrix.php-version }}
- name: Show PHPCS results in PR
if: ${{ always() && steps.phpcs.outcome == 'failure' }}
run: cs2pr ./phpcs-report.xml
run-phpmd:
name: Run PHPMD
runs-on: ubuntu-latest
if: ${{ github.event_name == 'pull_request' }}
strategy:
matrix:
php-version: [ "8.1", "8.2", "8.3" ]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup
id: ci-setup
uses: ./.github/actions/ci-setup
with:
extensions: 'curl'
extensions-cache-key: run-phpunit-${{ matrix.php-version }}
php-version: ${{ matrix.php-version }}
token: ${{ secrets.GITHUB_TOKEN }}
tools: 'composer, phpmd'
- name: Run PHPMD
continue-on-error: true
id: phpmd
run: composer phpmd
env:
CHANGED_FILES: ${{ steps.ci-setup.outputs.files }}
run-phpunit:
name: Run PHPUnit
runs-on: ubuntu-latest
strategy:
matrix:
php-version: [ "8.1", "8.2", "8.3" ]
coverage: [ true ]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup
id: ci-setup
uses: ./.github/actions/ci-setup
with:
extensions: 'curl, mysql, mysqli, tar, zip'
extensions-cache-key: run-phpunit-${{ matrix.php-version }}
php-version: ${{ matrix.php-version }}
token: ${{ secrets.GITHUB_TOKEN }}
tools: 'composer, phpunit'
- name: Run PHPUnit
continue-on-error: false
id: phpunit
run: composer phpunit
env:
CHANGED_FILES: ${{ steps.ci-setup.outputs.files }}
- name: Upload coverage to Codecov
if: ${{ github.event_name == 'pull_request' }}
uses: codecov/codecov-action@v4
with:
fail_ci_if_error: false
run-phpstan:
name: Run PHPStan
runs-on: ubuntu-latest
strategy:
matrix:
php-version: [ "8.1", "8.2", "8.3" ]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup
id: ci-setup
uses: ./.github/actions/ci-setup
with:
extensions: 'curl'
extensions-cache-key: run-phpunit-${{ matrix.php-version }}
php-version: ${{ matrix.php-version }}
token: ${{ secrets.GITHUB_TOKEN }}
tools: 'composer, phpstan'
- name: Run PHPStan
continue-on-error: true
id: phpstan
run: composer phpstan
env:
CHANGED_FILES: ${{ steps.ci-setup.outputs.files }}