编写 GitLab CI 脚本(.gitlab-ci.yml)
一定要多看官方的 templates
能找到很多灵感。例如要用 Docker 打包的 Laravel 项目,就综合看 Docker.gitlab-ci.yml 和 Laravel.gitlab-ci.yml。 所有模板:https://gitlab.com/gitlab-org/gitlab-foss/tree/master/lib/gitlab/ci/templates
如果未在作业中定义 when,则默认值为 when: on_success
https://gitlab.yitasoft.com/help/ci/yaml/index#when
if 可用的表达式
https://gitlab.yitasoft.com/help/ci/jobs/job_control.md#cicd-variable-expressions
当脚本命令返回非零的 exit code 时,作业将失败并且不会执行其他命令
解决方法是将退出代码存储在变量中,例如:
job:
script:
- false || exit_code=$?
- if [ $exit_code -ne 0 ]; then echo "Previous command failed"; fi;
when: never 只能在 rules 里面使用
rules:
- when: never
设置任务失败后的重试次数
默认是0,但是有些时候,任务遇到意外情况执行失败,只要原样重试一次就通了,很玄学。
job:
retry: 1