我有以下gitlab-ci conf。文件:
before_script:
- echo %CI_BUILD_REF%
- echo %CI_PROJECT_DIR%
stages:
- createPBLs
- build
- package
create PBLs:
stage: createPBLs
script:
- xcopy /y /s "%CI_PROJECT_DIR%" "C:\Bauen\"
- cd "C:\Bauen\"
- ./run_orcascript.cmd
build:
stage: build
script:
- cd "C:\Bauen\"
- ./run_pbc.cmd
except:
- master
build_master:
stage: build
script:
- cd "C:\Bauen\"
- ./run_pbcm.cmd
only:
- master
package:
stage: package
script:
- cd "C:\Bauen\"
- ./cpfiles.cmd
artifacts:
expire_in: 1 week
name: "%CI_COMMIT_REF_NAME%"
paths:
- GitLab-Build
如果在分支中添加了新标记,如何添加管道将仅触发的规则?标签应以" Ticket / ticket _"
开头目前他正在为每一次推动而努力。
答案 0 :(得分:4)
您需要使用only语法:
only:
- tags
这会触发任何Tag
被推送。如果你想更具体一点,你可以这样做:
only:
- /Ticket\/ticket\_.*/
可以使用Ticket/ticket_
标记进行任何推送。
答案 1 :(得分:0)
我建议在varibles-expression
中使用提交使用模式
示例
build_api:
stage: build
script:
- docker build --pull -t $CONTAINER_TEST_IMAGE .
- docker push $CONTAINER_TEST_IMAGE
only:
variables:
- $CI_COMMIT_MESSAGE =~ /(\[pipeline\]|(merge))/
这里我是说only
在提交中包含 [管道] 或合并时执行该作业。更多信息,在这里
gitlab
答案 2 :(得分:0)
下面的内容更具可读性,请参见only:varibles@gitlab-ci docs和refs:tags
only:
refs:
- tags
variables:
- $CI_COMMIT_TAG =~ /^[Tt]icket-.*/