Skip to content

Commit a44a2aa

Browse files
alquercithePanz
authored andcommitted
fix(docker): fix tests execution on docker environment
1 parent 998e779 commit a44a2aa

File tree

3 files changed

+85
-44
lines changed

3 files changed

+85
-44
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@
88
lib/plugins/sfDoctrinePlugin/test/functional/fixtures/log/
99
/vendor
1010
/composer.lock
11+
/var

docker-compose.yml

+3
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ services:
5050
php81:
5151
<<: *services_php74
5252
build:
53+
context: .docker
5354
args:
5455
PHP_VERSION: '8.1'
5556
MEMCACHE_VERSION: '8.0'
@@ -58,6 +59,7 @@ services:
5859
php82:
5960
<<: *services_php74
6061
build:
62+
context: .docker
6163
args:
6264
PHP_VERSION: '8.2'
6365
MEMCACHE_VERSION: '8.0'
@@ -66,6 +68,7 @@ services:
6668
php83:
6769
<<: *services_php74
6870
build:
71+
context: .docker
6972
args:
7073
PHP_VERSION: '8.3'
7174
MEMCACHE_VERSION: '8.0'

test/bin/test

+81-44
Original file line numberDiff line numberDiff line change
@@ -9,81 +9,118 @@
99
# Example: "lowest highest"
1010
#
1111

12-
# Configuration
13-
#
14-
dependencyPreferences='highest'
15-
skipPHPVersions='php8'
12+
main ()
13+
{
14+
# Configuration
15+
#
16+
dependencyPreferences='highest'
1617

17-
# Commands
18-
#
19-
dcexec="docker-compose exec -u `id -u`:`id -g`"
20-
installSubmodule='git submodule update --checkout --recursive --force'
21-
composerUpdate='composer update --prefer-dist --no-suggest --optimize-autoloader'
22-
symfonyTestSuite='data/bin/symfony symfony:test --trace'
18+
# Commands
19+
#
20+
dcexec="docker-compose exec -u `id -u`:`id -g`"
21+
installSubmodule='git submodule update --checkout --recursive --force'
22+
composerUpdate='composer update --prefer-dist --no-suggest --optimize-autoloader'
23+
symfonyTestSuite='data/bin/symfony symfony:test --trace'
2324

24-
# Parse arguments
25-
#
26-
phpVersions="${1-}"
27-
dependencyPreferences="${2-${dependencyPreferences}}"
28-
phpTestRuntime="${3-${symfonyTestSuite}}"
25+
# Parse arguments
26+
#
27+
phpVersions="${1-}"
28+
dependencyPreferences="${2-${dependencyPreferences}}"
29+
phpTestRuntime="${3-${symfonyTestSuite}}"
30+
31+
echo '+ docker-compose build'
32+
docker-compose up -d --build --remove-orphans > /dev/null
33+
34+
test x"" != x"${phpVersions}" || {
35+
phpVersions=`fetchAllPHPVersions`
36+
}
37+
38+
tearDownRegisterFunction reset_submodules
39+
40+
scriptAll
41+
}
2942

3043
script ()
3144
{
32-
echo
33-
echo
34-
echo $0 ${1} ${2}
35-
echo
36-
${dcexec} ${1} php data/bin/check_configuration.php
37-
${dcexec} ${1} php ${phpTestRuntime}
45+
echo
46+
echo
47+
echo $0 ${1} ${2}
48+
echo
49+
clearCacheOfMemcached
50+
${dcexec} ${1} php data/bin/check_configuration.php
51+
${dcexec} ${1} php ${phpTestRuntime}
3852
}
3953

4054
scriptAll ()
4155
{
42-
for dependencyPreference in ${dependencyPreferences}
43-
do
44-
install_${dependencyPreference}
45-
46-
for phpVersion in ${phpVersions}
56+
for dependencyPreference in ${dependencyPreferences}
4757
do
48-
script ${phpVersion} ${dependencyPreference}
58+
install_${dependencyPreference}
59+
60+
for phpVersion in ${phpVersions}
61+
do
62+
script ${phpVersion} ${dependencyPreference}
63+
done
4964
done
50-
done
5165
}
5266

5367
fetchAllPHPVersions ()
5468
{
55-
docker-compose 2>/dev/null ps --services --filter status=running \
56-
| grep php \
57-
| sort \
58-
| grep -v ${skipPHPVersions}
69+
docker-compose 2>/dev/null ps --services --filter status=running \
70+
| grep php \
71+
| sort
5972
}
6073

6174
install_highest ()
6275
{
63-
${installSubmodule} --remote
64-
${dcexec} composer ${composerUpdate}
76+
${installSubmodule} --remote
77+
${dcexec} composer ${composerUpdate}
6578
}
6679

6780
install_lowest ()
6881
{
69-
reset_submodules
82+
reset_submodules
7083

71-
${installSubmodule}
72-
${dcexec} composer ${composerUpdate} --prefer-lowest
84+
${installSubmodule}
85+
${dcexec} composer ${composerUpdate} --prefer-lowest
7386
}
7487

7588
reset_submodules ()
7689
{
77-
git submodule deinit --force --quiet -- .
90+
git submodule deinit --force --quiet -- .
7891

79-
git submodule init
92+
git submodule init
8093
}
8194

82-
echo '+ docker-compose build'
83-
docker-compose up -d --build --remove-orphans > /dev/null
95+
clearCacheOfMemcached ()
96+
{
97+
echo 'Clearing cache of memcached'
98+
${dcexec} memcached sh -c 'echo 'flush_all' | nc localhost 11211'
99+
}
100+
101+
tearDownRegisterFunction()
102+
{
103+
test x"" != x"${tearDown_functions-}" || {
104+
trap 'tearDown' 2 # CTRL-C
105+
trap 'tearDown' QUIT TERM EXIT INT KILL SEGV
106+
}
107+
108+
case ${tearDown_functions-} in #(
109+
?*) tearDown_functions="${tearDown_functions} $1" ;; #(
110+
*) tearDown_functions=$1 ;;
111+
esac
112+
}
113+
114+
tearDown()
115+
{
116+
test x"" != x"${tearDown_functions-}" || {
117+
return 0
118+
}
84119

85-
test x"" != x"${phpVersions}" || {
86-
phpVersions=`fetchAllPHPVersions`
120+
for tearDown_function in ${tearDown_functions}
121+
do
122+
${tearDown_function}
123+
done
87124
}
88125

89-
scriptAll
126+
main ${1+"$@"}

0 commit comments

Comments
 (0)