-
Notifications
You must be signed in to change notification settings - Fork 83
132 lines (108 loc) · 3.35 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
name: tests
on:
pull_request:
push:
branches:
- master
jobs:
phpstan:
name: PHPStan
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: php-actions/composer@v5
- name: PHPStan
uses: chindit/actions-phpstan@master
with:
# Arguments to add to PHPStan
arguments: 'src/'
phpunit:
name: PHPUnit
runs-on: ubuntu-latest
strategy:
matrix:
php-version:
- 7.1
- 7.2
- 7.3
- 7.4
- 8.0
dependencies:
- highest
include:
- php-version: 7.1
dependencies: lowest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
coverage: xdebug
ini-values: zend.assertions=1
- name: Install dependencies with Composer
uses: ramsey/composer-install@v1
with:
dependency-versions: ${{ matrix.dependencies }}
- name: Install Codeclimate binary
run: |
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > cc-test-reporter
chmod +x ./cc-test-reporter
- name: Run Codeclimate before-build
run: ./cc-test-reporter before-build
- name: Run PHPUnit
run: vendor/bin/phpunit --coverage-clover=clover.xml
- name: Upload coverage file artifact
uses: actions/upload-artifact@v2
with:
name: ${{ matrix.php-version }}-${{ matrix.dependencies }}
path: clover.xml
- name: Run Codeclimate format-coverage
run: ./cc-test-reporter format-coverage -o codeclimate.json
- name: Upload coverage file artifact
uses: actions/upload-artifact@v2
with:
name: ${{ matrix.php-version }}-${{ matrix.dependencies }}
path: codeclimate.json
codeclimate-upload:
name: Upload coverage to Codeclimate
runs-on: ubuntu-latest
needs:
- phpunit
env:
CC_TEST_REPORTER_ID: e33b74ed1f59947df361652193b6575db0afc663dcbc73af89a0cf16f2443d24
steps:
- name: Download coverage files
uses: actions/download-artifact@v2
with:
path: coverage
- name: Install Codeclimate binary
run: |
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > cc-test-reporter
chmod +x ./cc-test-reporter
- run: ./cc-test-reporter sum-coverage coverage/*/codeclimate.json
- run: ./cc-test-reporter upload-coverage
coveralls-upload:
name: Upload coverage to Coveralls
runs-on: ubuntu-latest
needs:
- phpunit
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install PHP
uses: shivammathur/setup-php@v2
with:
php-version: 7.4
coverage: none
- name: Download coverage files
uses: actions/download-artifact@v2
with:
path: build/logs
- name: Install php-coveralls
run: composer global require php-coveralls/php-coveralls
- name: Upload coverage results to Coveralls
env:
COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: php-coveralls --coverage_clover=build/logs/*/clover.xml -v