gitlab-ci - Gitlab CI 流水线作业
问题描述
下面是一个 Gitlab CI 管道代码
- image_build
- test1
- test2
image_build:
stage: image_build
tags:
- ddc
script:
- echo "image build"
rules:
- changes:
- Dockerfile
test1:
stage: test1
tags:
- ddc
script:
- echo "Test1 stage"
rules:
- when: on_success
test2:
stage: test2
tags:
- ddc
script:
- echo "Test2 stage"
rules:
- when: on_failure
如果没有对 Dockerfile 进行任何更改,我需要执行阶段 test1、test2。当 Dockerfile 发生变化时,同样的阶段 test1、test2 也不应该执行。
第二种情况工作正常,但第一种情况不行。请帮助我启动并运行此管道。
解决方案
如果您使用的是 GitLab CI 11.4 或更高版本,您可以使用only: changes
或rules: changes
参数。基于官方文档:
使用
changes
关键字only
或except
可以定义是否应根据 Git 推送事件修改的文件创建作业。
所以你的test1
和test2
阶段可能看起来像这样:
⋮
test1:
stage: test1
tags:
- ddc
script:
- echo "Test1 stage"
rules:
- when: on_success
except:
changes:
- Dockerfile
test2:
stage: test2
tags:
- ddc
script:
- echo "Test2 stage"
rules:
- when: on_failure
except:
changes:
- Dockerfile
⋮
推荐阅读
- computer-vision - RuntimeError: 输入和输出大小应该大于 0,但是得到了输入 (H: 1024, W: 1) 输出 (H: 800, W: 0)
- flutter - Flutter - 删除实时 Firebase 数据 onTap()
- javascript - 在 docker 容器中构建反应应用程序时,JavaScript 堆内存不足
- wordpress - 无法在 Mailchimp 活动中显示一篇帖子
- merge - 在我开发的时候用develop更新一个特性。是Gitflow吗?
- awk - 从没有列名的txt文件中获取列的数据
- xcode - 在 Xcode 中重复上一条命令或指令
- r - 如何在 R 中禁用绘图图表的缩放?
- c# - Binding a wpf xaml image to System.Windows.Controls.Image is not working
- vba - 导入网页源代码,包括不显示在页面上