我正在使用gitlab-ci-multirunner 9.3.0和GitLab社区版9.3.5
当我在本地虚拟盒环境中运行PHP单元测试时,总测试(30)大约需要:
Time: 5 minutes,Memory: 96.00MB
在我的gitlab主机上运行相同的测试,总共需要
Time: 41.68 minutes,Memory: 97.75MB
这些测试需要MysqL并在每个测试上执行数据库创建和夹具加载.
我的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
我的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
最佳答案
我正在使用gitlab-ci 10.3.0,其中在服务器上的测试花费了40分钟,而在Mac上的测试花费了2分钟.除了Mac使用SSD的硬盘外,服务器的性能均超出Mac.
不知道是否合适的解决方案,但我修改了跑步者的配置以匹配Docker Executor – Mounting a directory in RAM中的设置.
[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"
我还设法将服务器上的构建时间减少到2分钟.