期望是:在 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}
|      1KickAssTonight      2021-06-29 16:48:32 +08:00 only: [ branches ] only: [ master ] | 
|      2KickAssTonight      2021-06-29 16:50:30 +08:00 @KickAssTonight 这个语法并不是最新版的哈 | 
|  |      3css3 OP @KickAssTonight 老哥,这没区别啊,branches 是固定写法,还是泛指分支名称? | 
|      4suyingtao      2021-06-29 17:43:29 +08:00  1 only: changes: - Dockerfile - requirements.txt - .gitlab-ci.yml variables: - $CI_COMMIT_REF_NAME == "master" | 
|      5KickAssTonight      2021-06-30 09:34:52 +08:00 branches 应该是被当做关键字来处理了,表示所有分支,如果是写 master 或者 feature/xxx 这样的,就是指特定的分支 | 
|      6wengych      2021-06-30 17:32:50 +08:00 现在最近新的语法更加推荐使用 rules 关键字来定义规则. | 
|  |      7css3 OP @KickAssTonight 那这跟我的一样的逻辑啊,无效啊 |