安装问题
版本不匹配的问题
- 给yum添加源
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash
yum install gitlab-ci-multi-runner-1.11.2-1.x86_6
.gitlab-ci.yml不执行钩子脚本
摘自【Gitlab部署CI并使用.gitlab-ci.yml配置您的作业(中文翻译)】
-
Failure1
image.png
在一个终端中调用另一个shell,始终是无法执行的,后来捕捉到报错信息为sudo: sorry, you must have a tty to run sudo
,后来,在网上了解到可以如下解决:1. 编辑/etc/sudoers
1)Defaults requiretty
,修改为#Defaults requiretty
,表示不需要控制终端。
2)Defaults requiretty
,修改为Defaults:nobody !requiretty
,表示仅nobody
用户不需要控制终端。
如果修改为Defaults:%nobody !requiretty
,表示仅nobody
组不需要控制终端。
其实只要注释掉)Defaults requiretty
那个就可以了。表示在执行的时候不打开终端。摘自【解决sudo: sorry, you must have a tty to run sudo】 Solution
键入visudo
,注释掉Defaults requiretty
-
Failure2
image.png - Solution
visudo
,在文件的最后加上gitlab-runner ALL=(root) NOPASSWD: ALL
,授权给gitlab-runner。
.gitlab.yml额外资料
阶段
stages
用于定义作业可以使用的阶段。的说明书stages
允许具有灵活的多阶段流水线。
元素stages
的排序定义作业的执行顺序:
相同阶段的工作并行运行。
上一阶段的工作成功完成后,下一阶段的工作就会运行。
我们考虑下面的例子,它定义了3个阶段:
stages: - build - test - deploy
首先,所有工作build
都是并行执行的。
如果所有作业build
成功,则test
并行执行作业。
如果所有作业test
成功,则deploy
并行执行作业。
如果所有作业deploy
成功,则提交将被标记为success
。
如果以前任何一个作业失败,则提交将被标记为failed
并且不执行进一步的作业。