V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
css3
V2EX  ›  程序员

Gitlab-CI 中 only 关键字怎么使用

  •  
  •   css3 · 2021-06-29 10:20:14 +08:00 · 1317 次点击
    这是一个创建于 1273 天前的主题,其中的信息可能已经有所发展或是发生改变。

    期望是:在 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}
    
    9 条回复    2021-06-30 18:03:45 +08:00
    KickAssTonight
        1
    KickAssTonight  
       2021-06-29 16:48:32 +08:00
    only: [ branches ]

    only: [ master ]
    KickAssTonight
        2
    KickAssTonight  
       2021-06-29 16:50:30 +08:00
    @KickAssTonight 这个语法并不是最新版的哈
    css3
        3
    css3  
    OP
       2021-06-29 17:19:57 +08:00
    @KickAssTonight 老哥,这没区别啊,branches 是固定写法,还是泛指分支名称?
    suyingtao
        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"
    KickAssTonight
        5
    KickAssTonight  
       2021-06-30 09:34:52 +08:00
    branches 应该是被当做关键字来处理了,表示所有分支,如果是写 master 或者 feature/xxx 这样的,就是指特定的分支
    wengych
        6
    wengych  
       2021-06-30 17:32:50 +08:00
    现在最近新的语法更加推荐使用 rules 关键字来定义规则.
    css3
        7
    css3  
    OP
       2021-06-30 18:02:16 +08:00
    @KickAssTonight 那这跟我的一样的逻辑啊,无效啊
    css3
        8
    css3  
    OP
       2021-06-30 18:03:00 +08:00
    @wengych 放弃 only 采用了 rules 了
    css3
        9
    css3  
    OP
       2021-06-30 18:03:45 +08:00
    @suyingtao 感谢老哥热心解答,放弃使用 only 了,采用了 rules
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1343 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 17:28 · PVG 01:28 · LAX 09:28 · JFK 12:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.