I´m using gitlab-ci-multirunner 9.3.0 and the GitLab Community Edition 9.3.5
When i´m running my php-unit test on my local virtual box environment, the total test (30) just need about:
Time: 5 minutes, Memory: 96.00MB
Running the same tests on my gitlab host, it needs a total of
Time: 41.68 minutes, Memory: 97.75MB
The tests require mysql and do a database create and fixture load on each test.
My DockerFile:
FROM tetraweb/php:5.6
# Install additional packages
RUN apt-get clean && apt-get -qq update
RUN apt-get -qq upgrade -y
RUN apt-get install -qq -y apt-utils
RUN apt-get install -qq -y mysql-client libmagickwand-dev libgeoip-dev -y --no-install-recommends
RUN pecl install imagick apcu-4.0.11 geoip
RUN docker-php-ext-enable exif gd gettext intl mcrypt mysql mysqli opcache pdo_mysql zip memcache apcu imagick geoi
my gitlab-ci.yml:
variables:
TIMEZONE: Europe/Berlin
MYSQL_DATABASE: test
MYSQL_ROOT_PASSWORD: test-root
MYSQL_USER: test
MYSQL_PASSWORD: asecurething
SYMFONY_ENV: "test"
stages:
- test
- deploy
test:
image: test-image-php:5.6
services:
- mariadb:latest
stage: test
only:
- branches
except:
- master
script:
- export COMPOSER_CACHE_DIR=x/cache/composer
- SYMFONY_ENV=test composer install --no-progress --no-interaction
- chmod +x bin/console
- php vendor/phpunit/phpunit/phpunit --coverage-text --colors=never
I really think thats the mysql service fault who creates the big difference. Whats the best way to increase the performance of my phpunit tests?
I am using gitlab-ci 10.3.0 where my tests on the server took 40 minutes but on the Mac took 2 minutes. The server outspecs the Mac except for the hard disk where the Mac is using SSD.
Not sure if appropriate solution but I modified my runner configs to match the one in Docker Executor - Mounting a directory in RAM.
I have added the following in the config.toml:
[runners.docker]
# For the main container
[runners.docker.tmpfs]
"/var/lib/mysql" = "rw,noexec"
# For services
[runners.docker.services_tmpfs]
"/var/lib/mysql" = "rw,noexec"
I managed to reduce the build time to 2 minutes as well on the server.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With