Continuous integration 如何在任何要开发/掌握的分支请求合并时触发gitlab ci中的作业?
我是gitlab ci新手,我想根据在gitlab上执行的操作在远程服务器上启动一些脚本(我使用ssh)。有两个脚本:Continuous integration 如何在任何要开发/掌握的分支请求合并时触发gitlab ci中的作业?,continuous-integration,gitlab-ci,gitlab-ci-runner,Continuous Integration,Gitlab Ci,Gitlab Ci Runner,我是gitlab ci新手,我想根据在gitlab上执行的操作在远程服务器上启动一些脚本(我使用ssh)。有两个脚本: 比如说,当从任何分支接受到develope分支的合并请求时,脚本A 然后,当从master分支的任何分支接受合并请求时,我想执行脚本B 我已经尝试过的是在我的.gitlab ci.yml文件中使用文档中建议的only:[merge\u requests]关键字,但它不起作用,因为作业没有触发 这是我的档案: before_script: - 'which ssh-agent
develope
分支的合并请求时,脚本A李>
master
分支的任何分支接受合并请求时,我想执行脚本B.gitlab ci.yml
文件中使用文档中建议的only:[merge\u requests]
关键字,但它不起作用,因为作业没有触发
这是我的档案:
before_script:
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
build:
stage: build
tags:
- alextag
only:
- merge_requests
script:
- echo "Check if merge_request working here"
test:
stage: test
only:
- branches
tags:
- alextag
script:
- sh alex2.sh
- echo "$USER"
test
作业中的脚本在当前分支上的每次提交/推送时都能正常工作,但是当我合并到另一个分支或开发/掌握时,不会触发构建
作业
你知道如何使它发挥作用吗?欢迎任何帮助,谢谢。我终于找到了解决问题的方法。我正在使用的Gitlab实例的版本是11.4,但作业的merge\u requests
属性是在11.6版本中引入的。
请参见和与该功能关联的
请注意,此属性仅在创建合并请求时触发作业,而不是在接受合并请求时触发作业。您可以使用来获取有关合并请求的所有信息。@mholle I打开并接受合并请求。一旦被接受,我想执行脚本IIRC,脚本应该在打开MR时执行。一旦被接受,在您合并到的分支的推送启动时执行的作业。@Leonald,您找到解决方案了吗?问是因为我正在观察同一个问题。@iokananiokan@iokanan-Iokan是的,它终于对我起作用了!作业上的merge\u requests
属性是在gitlab服务器11.6版中引入的,但我正在使用gitlab 11.4版。看见