-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
93 lines (85 loc) · 2.41 KB
/
docker-compose.yml
File metadata and controls
93 lines (85 loc) · 2.41 KB
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
services:
setup:
build:
context: .
dockerfile: ./docker/Dockerfile.setup
platform: linux/amd64
volumes:
- ./vendor:/app/vendor
# Example: docker compose -p mobile-detect up --build runUnitTests
runUnitTests:
# Need xdebug from this image to run with coverage
# https://hub.docker.com/r/alcohol/php/tags
image: alcohol/php:8.4-xdebug
platform: linux/amd64
depends_on:
setup:
condition: service_completed_successfully
working_dir: /app
environment:
XDEBUG_MODE: coverage
command: >
/bin/sh -c "vendor/bin/phpunit -v -c tests/phpunit.xml --coverage-html .coverage --strict-coverage --stop-on-risky"
volumes:
- .:/app
runPerfTests:
image: php:8.4-alpine
platform: linux/amd64
depends_on:
setup:
condition: service_completed_successfully
working_dir: /app
# Path/iterations/revs/warmup/retry-threshold come from /phpbench.json.
command: >
/bin/sh -c "vendor/bin/phpbench run --report=aggregate"
volumes:
- .:/app
runLinting:
image: php:8.4-alpine
platform: linux/amd64
depends_on:
setup:
condition: service_completed_successfully
working_dir: /app
command: >
/bin/sh -c "vendor/bin/phpcs; vendor/bin/phpcbf"
volumes:
- .:/app
runQualityCheck:
image: php:8.4-alpine
platform: linux/amd64
depends_on:
setup:
condition: service_completed_successfully
working_dir: /app
command: >
/bin/sh -c "vendor/bin/phpstan analyse --debug --memory-limit=1G --level 3 src tests"
volumes:
- .:/app
# Pre-release validation gate - runs all checks
# Usage: docker compose -p mobile-detect up --build runAll
runAll:
image: php:8.4-alpine
platform: linux/amd64
depends_on:
runLinting:
condition: service_completed_successfully
runQualityCheck:
condition: service_completed_successfully
runUnitTests:
condition: service_completed_successfully
runPerfTests:
condition: service_completed_successfully
command: >
/bin/sh -c "echo '✅ All pre-release checks passed!'"
generateJsonModel:
image: php:8.4-alpine
platform: linux/amd64
depends_on:
runAll:
condition: service_completed_successfully
working_dir: /app
command: >
/bin/sh -c "php ./scripts/export_to_json.php"
volumes:
- .:/app