我试图设置GitLab CI流程,发现它非常懒散。几分钟内任务可以挂起待处理状态。但主要问题是建筑速度很慢。我们有一个自定义的PHP docker镜像(内置一些模块)和app。部署到CI最多可能需要5-10分钟。
怎么可能:
虽然对版本和时间进行了一些不必要的检查,但它们不是问题 - 它们很快但它们会提供有关精确版本和运行时间的信息。
.gitlab-ci.yml :
image: "registry.gitlab.com/project/debianphp7:latest"
services:
- mariadb:10.1
variables:
# CI_DEBUG_TRACE: "true" # hard Gitlab CI debug
MYSQL_HOST: mariadb
MYSQL_DATABASE: dbname
MYSQL_ROOT_PASSWORD: "password"
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
MYSQL_CMD: "mysql --user=root --password=$MYSQL_ROOT_PASSWORD --host=$MYSQL_HOST $MYSQL_DATABASE "
before_script:
- apt-get update && apt-get install mysql-client -y
- echo "Load database fixtures"
- mysql -V
- echo $MYSQL_CMD
- echo "SELECT 'OK', NOW(), VERSION();" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mariadb
- echo "SELECT 'OK', NOW(), VERSION();" | $MYSQL_CMD
- (find ./sql/*.sql -type f | while read f; do
echo "Loading " $f;
cat $f | $MYSQL_CMD;
done);
test:
script:
php -d short_open_tag=On src/execute_request_by_cron.php -- request=TestUnitTestRequest
THX。
答案 0 :(得分:2)
我不清楚的是,如果您使用gitlab.com上的免费托管版本或gitlab的自托管版本。但总的来说,你可以做两件事:
首先完全免费升级: 所有未在代码中更改的内容最好转移到预先构建的映像。例如这一行:
apt-get update && apt-get install mysql-client -y
我会从您的源映像创建一个预先安装了mysql客户端的映像。所有你需要的东西都是免费的,GitHub,Docker Hub和......
然后假设您正在使用gitlab.com,您可以通过激活私人跑步者来支付专用跑步者的费用。