合并提交后在 git ci/cd 上触发脚本

Posted

技术标签:

【中文标题】合并提交后在 git ci/cd 上触发脚本【英文标题】:Trigger scripts on git ci/cd after merge committed 【发布时间】:2019-07-25 07:39:36 【问题描述】:

我想从 git ci/cd 调用一些脚本。 第一个脚本应该在抛出合并请求时执行,然后在管理员提交请求后,我想执行另一个脚本

这是我现在在 .yml 上的代码:

script1:
  script: 
  - sshpass -p password ssh user@host "cmd.exe /c powershell.exe path\to\local\script1"  
  only:
  - merge_requests

script2:
  script: 
  - sshpass -p password ssh user@host "cmd.exe /c powershell.exe path\to\local\script2"  
  stage: deploy

使用这些代码,当合并请求被抛出时,git ci 仍然执行我的 script2,并在提交请求后部署我的主分支。 我只想执行我的 script2 代码中描述的脚本而不进行任何部署。

【问题讨论】:

【参考方案1】:

最后我只在我的目标分支上使用。

这是我使用的最终代码:

script1:
  script: 
  - sshpass -p password ssh user@host "cmd.exe /c powershell.exe path\to\local\script1"  
  only:
  - merge_requests

script2:
  script: 
  - sshpass -p password ssh user@host "cmd.exe /c powershell.exe path\to\local\script2"  
  only:
  - mytargetbranch

【讨论】:

以上是关于合并提交后在 git ci/cd 上触发脚本的主要内容,如果未能解决你的问题,请参考以下文章

CI/CD技术专题「Jenkins实战系列」如何通过Gitlab对接Jenkins构建提交自动触发部署构建体系指南(上部)

尝试在 webhook 触发后在服务器上运行 git pull,但无法正常工作

Docker——Jenkins + Git + Registry构建自动化持续集成环境(CI/CD)

git钩子

Jenkins与Docker的自动化CI/CD实战

使用 PHP 脚本作为提交后挂钩、触发 bash 脚本、执行 git-pull?