1.步骤
- 在可以访问git仓库的服务器部署Runner
- 在仓库配置.gitlab-ci.yml文件
- 在git仓库网页上配置对应的Runner
2. .gitlab-ci.yml配置
Keyword | Require | Description |
---|---|---|
script | yes | CI/CD过程中需要执行的shell脚本 |
stage | no | 一个job流程,默认test |
variables | no | 定义变量 |
only | no | 指定当前job适用的git refs(分支、Tag)列表 |
except | no | 与only相反 |
tags | no | 通过标签管理或匹配runner |
allow_failure | no | 指定当前job是否容错,正常job失败后会跳过后续job流程 |
before_script | no | 在当前job执行前的shell 脚本 |
after_script | no | 在当前job执行后执行的shell脚本 |
when | no | 依赖的上一个job执行什么状态后执行当前job |
dependencies | no | 指定依赖的job列表,默认顺序执行 |
3. 实例
Test: // job的 name (必须)
script: echo 'build' // 执行脚本 (必须)
stage: build // 阶段
最简单的 gitlab-ci.yml 的配置。job的name和执行脚本是必须的。脚本是Linux下shell 命令
4. 说明
运行机制:
- 1 在搭建gitlab 的服务器上运行runner
- 2 每次push runner会检查.gitlab-ci.yml,并执行
- 3 .gitlan-ci.yml 中的script 就会在gitlab服务器上的shell中执行,这时候就像在本地电脑中执行命令一样
- 4 CI需要推送代码到远程服务器,这时候就需要配置 private key,使用ssh登录
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
#运行ssh-agent(在构建环境中)
- eval $(ssh-agent -s )
#将存储在SSH_PRIVATE_KEY变量中的SSH密钥添加到代理存储
- ssh-add<(echo“$ SSH_PRIVATE_KEY”)
- mkdir -p〜/ .ssh
- '[[-f /.dockerenv]]&& echo -e“Host * \\\
\tStrictHostKeyChecking no\\\
\\\
”> 〜/ .ssh / config'
网友评论