joe*_*inz 4 laravel docker gitlab-ci
这是我第一次使用 gitlab CI,所以如果有一些关于配置的观察结果,很高兴听到它们
我在 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
Run Code Online (Sandbox Code Playgroud)
当测试被触发时,持续时间为12 分 20 秒, 有没有办法使用缓存来加速工作?
在 GitLab CI 中,您可以定义cache:临时存储项目依赖项。在你的 ci.yml 中,你已经这样做了。项目管道的大部分运行时间都浪费在了apt-get install。由于缓存依赖项安装apt-get install会很复杂,因此构建您自己的包含apt-get用于测试的依赖项的 docker 映像会更好。
image: php:7.2ci.yml 中DockerfileFROM 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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
.gitlab-ci.ymlimage: 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
Run Code Online (Sandbox Code Playgroud)
现在,提交更改并推送到您的 GitLab 服务器。
| 归档时间: |
|
| 查看次数: |
3392 次 |
| 最近记录: |