转自: https://www.cnblogs.com/szk5043/articles/9854712.html
以备个人查看,浏览请看原文!
1、gitlab-ci.yml参数列表
值 | 是否必须 | 描述 |
script | 必须 | 定义由Runner执行的shell脚本或命令 |
extends | 非必须 | 定义此作业将继承的配置条目 |
image | 非必须 | 需要使用的docker镜像,请查阅该文档 |
services | 非必须 | 定义所需的docker服务,请查阅该文档 |
stage | 非必须 | 定义一个工作场景阶段,默认是test |
type | 非必须 | stage的别名,不赞成使用 |
variables | 非必须 | 在job级别上定义的变量 |
only | 非必须 | 定义job所引用的git分支 |
except | 非必须 | 定义job所不适用的git分支 |
tags | 非必须 | 定义job所适用的runner,tags为runner标签 |
allow_failure | 非必须 | 允许任务失败,但是如果失败,将不会改变提交状态 |
when | 非必须 | 定义了job什么时候执行,可以是on_success、on_failure、always和manual |
dependencies | 非必须 | 定义了该job依赖哪一个job,如果设置该项,可以通过artifacts设置 |
artifacts | 非必须 | 工件,在依赖项之间传递的东西,类似cache,但原理与cache不同 |
cache | 非必须 | 定义需要被缓存的文件、文件夹列表 |
before_script | 非必须 | 覆盖在作业之前执行的脚本或命令 |
after_script | 非必须 | 覆盖在作业之后执行的脚本或命令 |
environment | 非必须 | 定义让job完成部署的环境名称 |
coverage | 非必须 | 定义job设置代码覆盖率 |
retry | 非必须 | 定义job失败后的自动重试次数 |
备注:
artifacts
dependencies
和cache
这两种方法可以实现job之间数据的同步
job:
tags:
- test-tag ##注意这个是选择指定的runner
services:
- php:7
- node:latest
- golang:1.10
image: alpine:3.7
script:
- echo '========== hello gitlab-runner'
2、gitlab-ci配置示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
3、生产环境配置示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
|
4、测试
hotfix/hotfix-conference分支仅能发布dev和test环境
#master分支仅能发布staging和prod环境