期望是:在 master
分支中的 Dockerfile,requirements.txt ,.gitlab-ci.yml
3 个文件中只要有一个发生变化时,就触发 build
这个 stage
但根据以下配置,目前实际触发情况是,所有分支都跑这了个 stage
,而且所有提交都触发,看上去这个 only
压根是没有生效,不知道是配置有误还是怎么的,官方文档也是这么配置的,大家帮忙看一下是哪里的问题
# ..gitlab-ci.yml
.main:
image: base:latest
stages:
- build
build_image:
stage: build
tags:
- tag
extends: .main
script:
- docker build -t test:stable .
only:
refs:
- master
changes:
- Dockerfile
- requirements.txt
- .gitlab-ci.yml
来自官方文档: https://docs.gitlab.com/ee/ci/yaml/#only--except
docker build:
script: docker build -t my-image:$CI_COMMIT_REF_SLUG .
only:
refs:
- branches
changes:
- Dockerfile
- docker/scripts/*
- dockerfiles/**/*
- more_scripts/*.{rb,py,sh}
1
KickAssTonight 2021-06-29 16:48:32 +08:00
only: [ branches ]
only: [ master ] |
2
KickAssTonight 2021-06-29 16:50:30 +08:00
@KickAssTonight 这个语法并不是最新版的哈
|
3
css3 OP @KickAssTonight 老哥,这没区别啊,branches 是固定写法,还是泛指分支名称?
|
4
suyingtao 2021-06-29 17:43:29 +08:00 1
only:
changes: - Dockerfile - requirements.txt - .gitlab-ci.yml variables: - $CI_COMMIT_REF_NAME == "master" |
5
KickAssTonight 2021-06-30 09:34:52 +08:00
branches 应该是被当做关键字来处理了,表示所有分支,如果是写 master 或者 feature/xxx 这样的,就是指特定的分支
|
6
wengych 2021-06-30 17:32:50 +08:00
现在最近新的语法更加推荐使用 rules 关键字来定义规则.
|
7
css3 OP @KickAssTonight 那这跟我的一样的逻辑啊,无效啊
|