-
Notifications
You must be signed in to change notification settings - Fork 0
142 lines (111 loc) · 3.96 KB
/
workflow.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
136
137
138
139
140
141
142
name: Tests
on: [pull_request]
env:
# see: https://github.com/shivammathur/setup-php
PHP_EXTENSIONS: mbstring, intl, json
jobs:
unit-tests:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php-version: ['7.4', '8.0']
env:
EXECUTE_COVERAGE: ${{ matrix.php-version == '7.4' }}
CLOVER_PATH: "clover.xml"
steps:
- uses: actions/checkout@v2
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
extensions: ${{ env.PHP_EXTENSIONS }}
tools: composer:v1
ini-values: zend.assertions=1
- name: Get Composer Cache Directory
id: composer-cache
run: |
echo "::set-output name=dir::$(composer config cache-files-dir)"
- uses: actions/cache@v1
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-
- name: Login composer
run: composer config -g github-oauth.github.com ${{ secrets.MACHINE_USER_PAT }}
- name: Install dependencies
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --no-suggest
- name: Run PhpUnit with coverage
if: env.EXECUTE_COVERAGE == 'true'
run: composer run test-unit -- --coverage-clover ${{ env.CLOVER_PATH }}
- name: Run PhpUnit
if: env.EXECUTE_COVERAGE != 'true'
run: composer run test-unit
- name: Coverage monitor
if: env.EXECUTE_COVERAGE == 'true'
uses: slavcodev/coverage-monitor-action@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
clover_file: ${{ env.CLOVER_PATH }}
comment: false
threshold_alert: 80
threshold_warning: 90
lint:
runs-on: ubuntu-latest
strategy:
matrix:
php-version: ['7.4']
steps:
- uses: actions/checkout@v2
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
extensions: ${{ env.PHP_EXTENSIONS }}
tools: composer:v1
- name: Get Composer Cache Directory
id: composer-cache
run: |
echo "::set-output name=dir::$(composer config cache-files-dir)"
- uses: actions/cache@v1
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-
- name: Login composer
run: composer config -g github-oauth.github.com ${{ secrets.MACHINE_USER_PAT }}
- name: Install dependencies
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --no-suggest
- name: Lint code
run: composer run test-cs
static-analysis:
runs-on: ubuntu-latest
strategy:
matrix:
php-version: ['7.4']
steps:
- uses: actions/checkout@v2
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
extensions: ${{ env.PHP_EXTENSIONS }}
tools: composer:v1
- name: Get Composer Cache Directory
id: composer-cache
run: |
echo "::set-output name=dir::$(composer config cache-files-dir)"
- uses: actions/cache@v1
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-
- name: Login composer
run: composer config -g github-oauth.github.com ${{ secrets.MACHINE_USER_PAT }}
- name: Install dependencies
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --no-suggest
- name: Run psalm
run: composer run test-code