-
Notifications
You must be signed in to change notification settings - Fork 16
146 lines (123 loc) · 3.21 KB
/
run-tests.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
name: CI
on:
# Run tests for pull requests or pushes to the main branch
pull_request:
branches:
- main
push:
branches:
- main
env:
# Use buildkit for faster builds
DOCKER_BUILDKIT: 1
BUILDKIT_PROGRESS: plain
jobs:
build:
name: Build
runs-on: ubuntu-22.04
steps:
- name: Checkout the source code
uses: actions/checkout@v4
- name: Set up Docker buildx
uses: docker/setup-buildx-action@v3
- name: Build image
uses: docker/build-push-action@v6
with:
context: .
build-args: |
NO_DEV=0
tags: local/smr:latest
cache-from: type=gha
cache-to: type=gha,mode=max
phpunit:
name: PHPUnit
needs: build
runs-on: ubuntu-22.04
steps:
- name: Checkout the source code
uses: actions/checkout@v4
with:
# Needed by Codecov
fetch-depth: 2
- name: Set up Docker buildx
uses: docker/setup-buildx-action@v3
- name: Build image from cache
uses: docker/build-push-action@v6
with:
context: .
build-args: |
NO_DEV=0
tags: local/smr:latest
cache-from: type=gha
load: true
- name: Setup test environment
run: composer start:test-services
- name: Run phpunit tests
run: composer phpunit
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
files: test/coverage/clover.xml
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
verbose: true
phpstan:
name: PHPStan
needs: build
runs-on: ubuntu-22.04
steps:
- name: Checkout the source code
uses: actions/checkout@v4
- name: Set up Docker buildx
uses: docker/setup-buildx-action@v3
- name: Build image from cache
uses: docker/build-push-action@v6
with:
context: .
build-args: |
NO_DEV=0
tags: local/smr:latest
cache-from: type=gha
load: true
- name: Run static analysis
run: composer phpstan
phpcs:
name: PHP_CodeSniffer
needs: build
runs-on: ubuntu-22.04
steps:
- name: Checkout the source code
uses: actions/checkout@v4
- name: Set up Docker buildx
uses: docker/setup-buildx-action@v3
- name: Build image from cache
uses: docker/build-push-action@v6
with:
context: .
build-args: |
NO_DEV=0
tags: local/smr:latest
cache-from: type=gha
load: true
- name: Run code sniffer
run: composer phpcs
rector:
name: Rector
needs: build
runs-on: ubuntu-22.04
steps:
- name: Checkout the source code
uses: actions/checkout@v4
- name: Set up Docker buildx
uses: docker/setup-buildx-action@v3
- name: Build image from cache
uses: docker/build-push-action@v6
with:
context: .
build-args: |
NO_DEV=0
tags: local/smr:latest
cache-from: type=gha
load: true
- name: Run rector analysis
run: composer rector