在项目的根目录下放置.gitlab-ci.yml文件来达到持续集成和部署的目的。 .gitlab-ci.yml被runner进程读取,从而完成CI/CD的任务。默认情况下有三个阶段的流水线阶段:build、test、deploy。
简而言之,具体的CI所需要的步骤就两步:
- 添加.gitlab-ci.yml到项目的根目录
- 配置一个runner
.gitlab-ci.yml是一个YAML格式的文件,所以在缩进的时候要使用空格而不是制表符。
默认情况下gitlab已经开启了项目的"Auto DevOps"功能,我们将.gitlab-ci.yml文件push到gitlab上之后,gitlab会自动运行yml中定义的各种操作。
1. 配置Runner
1. 下载
~]# wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
2. 授权
~]# chmod +x /usr/local/bin/gitlab-runner
3. 创建用户
~]# useradd --comment "GitLab Runner" --create-home gitlab-runner --shell /bin/bash
4. 安装并运行
~]# gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
5. 注册
提示: 一个runner可以注册多个项目来运行
注册中需要用到gitlab后台中的两个数据,一个是gitlab的地址,另一个是token,这个在项目的设置中可以找到。
~]# gitlab-runner register --url gitlab访问地址 -r 注册所用的token --description gitlabrunner --ssh-host 主机IP --ssh-port 22 --ssh-user root --ssh-password服务器密码 #其余的部分根据提示填写即可
2. 配置参数
关键字 | 描述 |
---|---|
script | 由runner执行的命令或者脚本 |
before_script | 作业执行之前执行的一组命令 |
after_script | 作业执行之后执行的一组命令 |
stages | 定义pipeline中的阶段 |
stage | 定义作业阶段 |
variables | 在作业级别定义变量 |
retry | 发生故障的情况下,可以自动重试的次数 |
script是yml文件里面唯一必需的关键字。
-
变量优先级
- trigger变量和scheduled pipeline变量
- 项目级别变量或者被保护的变量
- 组级的变量或者被保护的变量
- YAML中定义的作业级别的变量
- YAML定义的全局变量
- 部署变量
- 预定义的环境变量
job:
script:
- echo "test"
参考链接
- https://docs.gitlab.com/11.11/ee/ci/quick_start/README.html
- https://docs.gitlab.com/runner/install/
- https://docs.gitlab.com/11.11/ee/ci/yaml/README.html
- https://docs.gitlab.com/11.11/ee/ci/variables/README.html
- https://docs.gitlab.com/runner/configuration/advanced-configuration.html