gitlab - Gitlab CI 规则 - 仅在推送到源/主时运行
问题描述
我正在寻找一个不寻常的用例,我只在推送到 origin/master 后运行某些作业。实际上,这只发生在合并时,所以我的第一次尝试是以下规则:
if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_COMMIT_BRANCH == "master"'
但这不起作用,大概是因为推送到 origin/master 的实际合并提交不被视为merge_request_event
.
有什么办法可以做到这一点?
注意:我不是简单地使用if: $CI_COMMIT_BRANCH == "master"'
来避免在推送到非源叉的master
分支时运行。
解决方案
我找到了一种方法来使用唯一分配PROJECT_ID
的 gitlab 变量(每个 fork 都不同)。所以以下工作:
if: '$CI_PROJECT_ID == "<origin fork's project_id>" && $CI_COMMIT_BRANCH == "master"'
项目 ID 可以在 gitlab 的设置中找到。
推荐阅读
- amazon - Amazon PA API 5.0 和闪购价格,我能拿到最低价吗?
- mongodb - Mongodb Kafka Connector如何查看多个集合
- google-apps-script - 如何在不知道文件 ID 的情况下使用文件名访问 Google 驱动器文件?
- makefile - 具有多个目标的 Makefile:MAKECMDGOALS 优惠待遇
- python - 未显示以 NaN Y 轴值开始或结束的散景图
- c - 如何检查数组的元素是否为特殊字符?
- python - BeautifulSoup find.all() 网页抓取返回空
- postgresql - 在 Redshift 表上使用 postgresql 在 while 循环内增加日期
- javascript - 如果它不存在,我想在列表中推送一个项目。如果该项目已在列表中,则删除该项目
- android-studio - AAPT:错误:写入 'c: ....\r.txt' 失败:数据无效。(13)