-
Notifications
You must be signed in to change notification settings - Fork 0
153 lines (122 loc) · 4.16 KB
/
php.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
143
144
145
146
147
148
149
150
151
152
153
name: CI
on:
push:
branches: [ '[1-9].[0-9]+' ]
pull_request:
branches: [ '[1-9].[0-9]+' ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php-versions: ['7.4', '8.0', '8.1', '8.2', '8.3']
name: PHP ${{ matrix.php-versions }}
steps:
- uses: actions/checkout@v2
- name: Set Timezone
uses: szenius/set-timezone@v1.0
with:
timezoneLinux: "Europe/Paris"
- name: Install PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
extensions: json
ini-values: date.timezone=Europe/Paris
- name: Check PHP Version
run: php -v
- uses: mirromutth/mysql-action@v1.1
with:
mysql version: '5.7'
mysql root password: 'root'
- name: Reset mysql password
run: |
# To prevent "ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0"
# See: https://github.com/mirromutth/mysql-action/issues/16
sleep 15
cat <<EOF | mysql -h 127.0.0.1 -u root --password=root
UPDATE mysql.user SET authentication_string = null WHERE user = 'root';
FLUSH PRIVILEGES;
EOF
- name: Validate composer.json and composer.lock
run: composer validate --strict
- name: Install dependencies
run: composer install --prefer-dist --no-progress
# Add a test script to composer.json, for instance: "test": "vendor/bin/phpunit"
# Docs: https://getcomposer.org/doc/articles/scripts.md
- name: Run test suite
run: vendor/bin/phpunit
- name: Enable debug session
if: ${{ failure() && runner.debug == '1' }}
uses: lhotari/action-upterm@v1
with:
limit-access-to-actor: true
wait-timeout-minutes: 5
analysis:
name: Analysis
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set Timezone
uses: szenius/set-timezone@v1.0
with:
timezoneLinux: "Europe/Paris"
- name: Install PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.0
extensions: json
ini-values: date.timezone=Europe/Paris
#
# - name: Install Infection
# run: composer global require infection/infection
- name: Validate composer.json and composer.lock
run: composer validate --strict
- name: Install dependencies
run: composer install --prefer-dist --no-progress
- name: Run type coverage
run: ./vendor/bin/psalm --shepherd --no-cache --output-format=github
- name: Run psalm usage
run: ./vendor/bin/psalm --no-cache -c tests/StaticAnalysis/psalm.xml
#
# - name: Run Infection
# run: |
# git fetch --depth=1 origin $GITHUB_BASE_REF
# ~/.composer/vendor/bin/infection --logger-github --git-diff-filter=AM
coverage:
name: Test coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set Timezone
uses: szenius/set-timezone@v1.0
with:
timezoneLinux: "Europe/Paris"
- name: Install PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.1
extensions: json
ini-values: date.timezone=Europe/Paris
- uses: mirromutth/mysql-action@v1.1
with:
mysql version: '5.7'
mysql root password: 'root'
- name: Reset mysql password
run: |
# To prevent "ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0"
# See: https://github.com/mirromutth/mysql-action/issues/16
sleep 15
cat <<EOF | mysql -h 127.0.0.1 -u root --password=root
UPDATE mysql.user SET authentication_string = null WHERE user = 'root';
FLUSH PRIVILEGES;
EOF
- name: Install dependencies
run: composer install --prefer-dist --no-progress
- name: Run test coverage
run: ./vendor/bin/phpunit --coverage-clover=coverage.xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v2
with:
files: coverage.xml