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

云主机_网站建设的大公司_免费1年

小七 141 0

使用GitHub对ABAP代码进行版本控制越来越常见。版本控制代码本身是有益的,它也给了我们以其他方式提高质量的机会。在本教程中,我将展示如何设置Github+Jenkins,并根据您设置的abapLint属性检查ABAP代码是否兼容詹金斯的工作实例。GitHub存储库。定义的代码约定(可选)。

Jenkins:

为了设置管道,有必要启动并运行Jenkins实例。请检查另一个教程。

一旦你有詹金斯实例工作,你需要创建一个空间来插入你的存储库。所以让我们设置它。

新项目给它取个名字选择Multibranch Pipeline(我们将使用piperlib框架,根据文档,现成的"projectpiper"的连续交付管道必须以这种方式运行。在分支源上选择GitHub。通知"Repository HTTPS URL"–这是用于克隆的相同URL。如果您使用的是私有存储库,买云服务器,则需要添加一个新的具有SSH个人令牌访问权限的凭据,该凭据是从您的GitHub帐户提取的。

GitHub存储库:

在存储库中转到"设置"转到挂钩单击Add WebHook在有效负载URL上,通知Jenkins URL并在末尾插入/github-webhook/。内容类型–选择应用程序/json秘密不需要选择事件–标记请求。这样,Jenkins在创建PR或添加新提交PR时将对您的PR进行评估。

Piper lib

好吧,当我开始设置这个项目时,我尝试使用用DSL语法编写的常规Jenkins管道。但是,出于安全和性能的考虑,我们决定使用docker映像而不是节点.js运行过梁。当我们决定使用一个docker映像并将此映像称为内部映像时,Jenkins piper lib成为最佳选择。在尝试使用常规语法管道时,我们很难让Jenkins理解我们的外部资源。经过几次尝试,我们终于开始使用piper lib库进行测试,它很容易理解,让我们可以使用带有abapline的docker映像。

项目piper文档:https://sap.github.io/jenkins-library/

与在Jenkins上启用GitHub插件的方法相同,您需要确保Piper lib插件已启用。

之后,您可以做一个简单的测试

在存储库的根目录上创建一个Jenkins文件。

在Jenkins文件中插入以下内容:

此步骤同步存储库并初始化项目设置。

您还需要一个.pipeline/配置yml在您的存储库中。

在这种情况下,我们在此文件上设置以下配置:

*在这种情况下您的生产分支是master,大数据的趋势,不需要声明

您可以已经测试了。您可以直接在Jenkins上运行管道,或者如果您在本地创建了这些文件,您可以提交并将其推送到存储库,然后创建一个Pull请求。PR应该已经启动Jenkins管道了。

好的,现在你的管道正在工作,但是没有显著的结果,因为我们没有测试任何关于你的存储库代码的东西。

所以让我们在管道中添加另一个阶段。重新打开你的jenkins文件。

在这个例子中,服务器和云服务器,我把新的步骤称为test,但是你可以选择任何你喜欢的名字。这个阶段的目标是让我们的代码被abaplint分析。

在这个阶段,我们使用piper命令dockerExecute,将脚本上下文指向dockerImage,如下所示:dockerExecute(脚本:this,dockerImage:'abaplint/abaplint')。

在这个上下文中,我们可以运行任何我们想要的命令,什么是物联网工程,因为我们正在与abaplint docker交谈现在想象一下。在这个示例中,我选择打印消息"Running abaplint docker",然后是安装linter的命令–获取最新内容–并使用命令abaplint运行。

如果代码没有违反任何规则,则会返回成功消息,管道结果在Jenkins和您的Pull请求上为绿色。

您的PR的abapLint上没有发现

abapLint

abapLint是ABAP的过梁。在本例中,我们将此作为代码检查的最后步骤。我们打算在创建/编辑Pull请求时进行静态检查,以便自动化这部分代码审查,以便审查代码的人员能够关注逻辑和更复杂的细节。检查以下位置的所有可用资源https://abaplint.org/

到目前为止,我们还没有收到任何警告问题,因为我们还没有制定任何规则。

在本页https://rules.abaplint.org/您可以检查所有可用于abapline的规则。您不需要全部使用它们,您可以选择任何适合您团队的代码约定的内容,也可以对其进行调整。在存储库的根目录中插入abaplint.json文件文件。此文件将包含要使用的规则集。如果你在上面设置了下面的内容,你要检查关键字是否大写,行长是否超过20——这很荒谬,但这只是一个我们想要打破的测试。我们也在检查缩进是否良好。

在GitHub存储库中插入此文件后,Jenkins将在阶段测试中使用它。

创建一个包含ABAP代码的新请求并检查错误,Jenkins将通过单击"详细信息"向您显示。

在GitHub上,在Jenkins运行后单击"详细信息"查看报告

在Jenkins上带有abaplint结果的PR

在Jenkins上的abaplint报告

此外,企业管理软件排行,您还可以随时测试您的规则或在上创建PR之前https://playground.abaplint.org/。