--这是我第一次使用gitlab,所以如果有一些关于配置的观察,很高兴听到它们
我在gitalb中为一个laravel项目配置了CI管道,在它中,我只使用PHPUnit运行测试套装:
image: php:7.2
cache:
paths:
- vendor/
- node_modules/
before_script:
- apt-get update -yqq
- apt-get install git libzip-dev libcurl4-gnutls-dev libicu-dev libmcrypt-dev libvpx-dev libjpeg-dev libpng-dev libxpm-dev zlib1g-dev libfreetype6-dev libxml2-dev libexpat1-dev libbz2-dev libgmp3-dev libldap2-dev unixodbc-dev libpq-dev libsqlite3-dev libaspell-dev libsnmp-dev libpcre3-dev libtidy-dev -yqq
- docker-php-ext-install mbstring pdo_mysql curl json intl gd xml zip bz2 opcache bcmath
- pecl install xdebug
- docker-php-ext-enable xdebug
- curl -sS https://getcomposer.org/installer | php
- php composer.phar check-platform-reqs
- php composer.phar install
- cp .env.testing .env
- php artisan key:generate
- php artisan config:clear
test:
script:
- php vendor/bin/phpunit --coverage-text --colors=never当触发测试时,持续时间为12分钟、20秒、,有办法使用缓存来加快作业速度吗?
发布于 2019-09-29 20:26:42
建立自己的码头形象
在GitLab CI中,可以定义cache:以临时存储项目依赖项。在你的ci.yml中,你已经做到了。项目管道的大部分运行时间都浪费在了apt-get install上。由于要从apt-get install中缓存依赖项安装将很复杂,因此构建自己的坞库映像(其中包括来自apt-get的依赖项以进行测试)会更好。
步骤
编写一个dockerfile
image: php:7.2,在GitLab中推动您的更改并运行管道
Dockerfile
FROM php:7.2
RUN set -eux; \
apt-get update -yqq; \
apt-get install git libzip-dev libcurl4-gnutls-dev libicu-dev libmcrypt-dev libvpx-dev libjpeg-dev libpng-dev libxpm-dev zlib1g-dev libfreetype6-dev libxml2-dev libexpat1-dev libbz2-dev libgmp3-dev libldap2-dev unixodbc-dev libpq-dev libsqlite3-dev libaspell-dev libsnmp-dev libpcre3-dev libtidy-dev -yqq; \
docker-php-ext-install mbstring pdo_mysql curl json intl gd xml zip bz2 opcache bcmath; \
pecl install xdebug; \
docker-php-ext-enable xdebug建立,将图像推到某处
docker build --tag image-name:tag-name --file Dockerfile .
docker tag image-name:tag-name registry.example.com/organization/image-name:tag-name
# I assume you've already authenticated by your registry
docker push registry.example.com/organization/image-name:tag-name更新.gitlab-ci.yml
image: registry.example.com/organization/image-name:tag-name
cache:
paths:
- vendor/
- node_modules/
before_script:
- curl -sS https://getcomposer.org/installer | php
- php composer.phar check-platform-reqs
- php composer.phar install
- cp .env.testing .env
- php artisan key:generate
- php artisan config:clear
test:
script:
- php vendor/bin/phpunit --coverage-text --colors=never最后一步
现在,提交更改并推送到您的GitLab服务器。
https://stackoverflow.com/questions/58154246
复制相似问题