SCP neo deploy-mta不能连续部署2个版本

时间:2018-03-29 13:30:48

标签: jenkins deployment sapui5 sap scp

我正在与服务器上运行的Jenkins合作。 我有一个管道,由用户触发,在GitHub存储库上推送一些东西。 它执行一个脚本,确保将GitHub存储库部署到SAP Cloud Platform。

它使用MTA Archive Builder构建创建.mtar文件的MTA应用程序。 MTA应用程序有一个HTML5模块。 使用MTA Archive Builder构建.mtar文件后,我使用NEO Java Web SDK(您需要执行neo deploy-mta的库)来部署它。 " neo deploy-mta"是一个执行部署html5应用程序的实际请求的命令。 此工作正常,项目已成功部署在SAP Cloud Platform上。 问题是:如果用户在GitHub上快速推送2次,我的Jenkins管道会被触发两次并执行" neo deploy-mta" 2次。

在正常情况下,SAP Cloud平台应该部署2个版本,但是当我看它时,它只部署了第一个部署请求。所以它跳过了第二个部署请求。

我的问题是如何在发生2次推送时确保在SAP Cloud Platform上部署了2个版本?

2 个答案:

答案 0 :(得分:1)

Jenkins实例已经在等待,直到没有正在运行的构建。 问题是当有2个部署请求时,SAP Cloud Platform没有部署2个版本。

此问题的解决方案是将“ - synchronous”参数添加到“neo deploy-mta”命令。现在,此脚本将等待,直到SAP Cloud Platform上没有运行部署(对于此应用程序)。

答案 1 :(得分:0)

很可能是因为SAP MTA部署者检测到您正在进行另一次部署,从而停止第二次部署。

要做的一个版本是确保Jenkins在第一个版本完成之前不运行第二个版本。你可以借助锁/信号量机制来做到这一点。有几种方法可以通过Jenkins插件来实现:

另请参阅How can I prevent two Jenkins projects/builds from running concurrently?