云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

金山云_笑傲江湖2东方不败百度云_12月免费

小七 141 0

在我最近的项目中,我们正在构建通过restfulapi连接到SAP后端的Java迷你服务。该团队在Jenkins中设置了一个CI/CD管道,以自动构建、测试和部署这些Java服务。在我们拥有管道的时候,我已经意识到拥有这样的管道的好处,这成为我为ABAP构建管道的动机。

在我看来,最重要的好处是对软件健康状况的可见性。如果有人问Java部件目前是否工作正常,我们可以浏览一下Jenkins monitor,并且能够非常自信地回答。在阿巴普,我们只是瞎子。我甚至有时会破坏我的软件,后来发现他们。

我认为这是很好的,如果我有一个ABAP,所以至少当一些事情出了问题,我,作为ABAP开发人员,应该知道它之前,其他人尽快。一开始我并没有期望太多,只是每次我们在ABAP中进行更改时执行一些测试,即持续集成。

谁知道,我最终让CI和CD都在ABAP的管道中运行。不完美,但足够好。以下是Jenkins中针对ABAP的管道:

与我们的Java管道相比:

在本博客中,我将指导如何为您的ABAP后端设置相同的CI管道。

我的建议是通过SAP CAL在Azure或AWS的云上构建SAP NetWeaver作为ABAP和SAP BW 7.50 SP02。如果你不知道如何做到这一点,那么你可以看看这个博客的指示。这将是一个有点不同,因为有些步骤现在变得更容易了。

对于詹金斯来说,一旦你得到了开发版并运行,你也得到了一个Windows2012服务器前端实例。在服务器上下载并安装Jenkins。安装所有推荐的插件,你就可以开始了节点.js,您可以使用巧克力来简化安装。对于newman,您可以通过npm(附带节点.js).

为什么我们要使用Git进行ABAP?这是我经常问的问题。嗯,一开始我不想使用,但我想部署一种机制,每次ABAP代码更改时都会触发Jenkins。

我可能会在ABAP的某个地方插入一个自定义逻辑,以便在开发人员发布任务时触发Git,类似于Java开发人员提交并推送代码时。但这太复杂了。我不想写ABAP代码来自动化ABAP代码。

既然有像abapGit这样的好工具,而且我知道Git可以触发Jenkins,那么为什么我们不做这些来简化我们的工作。

后来,我发现使用Git for ABAP有更多的好处。有一天,有人问我,在过去的两周里,我们的生产有什么变化。在那两周里我做了很多改变,所以我记不清所有的改变。我只是去Git看看我所做的所有更改的日志。我甚至可以一行一行地显示我所做的更改。

除了更改日志之外,对开发人员来说,另一个好处是代码备份。我有时需要恢复到我写的代码,并已删除昨天或上周。当我还没有开始使用Git的时候,这对我来说通常是个问题,因为从本质上讲,大数据,ABAP开发人员并不经常创建新版本。使用Git和apply practice"commit every day"有很大帮助。

Git还有助于强制开发人员在单独的包中模块化他们的对象。我以前在同一个包中看到3000多个对象,那么包根本就没有被它所用。

将代码推送到Git

如果您还没有这样做,物联,请创建一个Git存储库并将您的ABAP代码推送到其中。在本教程中,我将以我的简单restapi存储库为例。您可以随意克隆它来打包$REST\u SIMPLE.

添加Jenkinsfile

转到您的Git存储库并添加Jenkinsfile(如果您像我一样使用我的存储库,您不必这样做)。粘贴以下内容并提交。

您应该可以在存储库中看到Jenkins文件。

您可以在Jenkins中逐个创建作业以自动化每个步骤,但在本教程中,我将使用Apache Groovy格式的Jenkins管道脚本,它更易于重用和维护。

像Groovy一样的PaaC(pipeline as a Code)的优点就是您可以以代码格式维护整个管道,这意味着您也可以在Git上对其进行版本控制。编码意味着需要更少的配置,并通过UI最小化点击、键入和等待。

创建一个新的管道作业

在Jenkins中,创建一个新的管道作业。

设置构建触发器以每分钟从Git拉出。或者您可以设置web钩子。

通过从Git存储库读取Jenkins文件来配置管道。

创建凭据

转到凭据并添加一个新凭据,如下所示。这是您允许Jenkins登录ABAP系统的用户名和密码。

运行

返回您的作业,然后单击"立即构建"开始构建。如果一切都设置正确,您应该看到管道成功完成,如下图所示。

持续交付是为了保持向客户交付价值。完成的功能或更改应尽快转移到QA/Staging,返利app是真的吗,以便用户可以测试并提供反馈。

您可以附加Jenkinsfile以执行其他阶段,以便将您的更改转移到QA环境中。这取决于您公司的流程和系统环境。如何编写Jenkinsfile是另一个很长的博客,所以我不在这里解释它。