繁体   English   中英

有没有办法在 .gitlab-ci.yml 文件中自动更改分支名称?

[英]Is there any way to change branch name automatically inside the .gitlab-ci.yml file?

我正在尝试构建我的.gitlab-ci.yml文件,以便为我的功能分支完成正确的管道运行。

由于我的功能分支将从开发中克隆,它将获得特定.gitlab-ci.yml ,我在下面给出了一个示例:

# TCR Compiling Job    
TCR:
  rules:
    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "master"'
      when: on_success
      changes:
        - tcr/**/*
    - if: '$CI_PIPELINE_SOURCE == "web" && $CI_COMMIT_BRANCH == "development"'
      when: manual
      changes:
        - tcr/**/*     
  
  script:
      - latexmk doc-operation-handbook-tcr.tex
  
  artifacts:
    name: "$CI_JOB_STAGE-$CI_COMMIT_REF_NAME"
    paths:
      - doc-operation-handbook.pdf
    when: on_success
    expire_in: 30 min

在上面的示例中,可以看出我有两个不同的规则; 一种供大师用,一种供开发用。 但是每当创建一个特性分支时,它都会尝试运行这个没有为该特性分支定义规则的管道。

有没有办法在创建功能分支时自动定义它? 就像使用$CI_COMMIT_BRANCH == "feature_branch"类的东西。

注意:正确完成合并请求后,我的功能分支将被删除。

您可以在rules定义中使用正则表达式。 例如:

rules:
# only for a ref that starts with "feature_branch_"
  - if: '$CI_COMMIT_REF_NAME == /^feature_branch_[a-Z0-9\-\_].*$/'
    when: always
# only for a tag ref that matches vX.Y.Z such as v1.5.2
  - if: '$CI_COMMIT_REF_NAME == /^v\d\.\d\.\d$/'
    when: manual

有关更多详细信息,请参阅rules:if文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM