问题标签 [jenkinsfile]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1176 浏览

jenkins-workflow - 如何显示使用 Jenkinsfile 构建的 Maven 模块列表

当我在 Jenkins 中创建一个 Maven 构建并运行它时,我将看到所有已构建的子模块(及其状态)。

使用管道脚本 Jenkinsfile 时如何实现这一点?有插件吗?

编辑:添加了显示我的意思的图像(请参阅图像上的模块构建部分) 在此处输入图像描述

0 投票
4 回答
26326 浏览

jenkins - Jenkinsfile 构建日志

是否有任何内置变量可以访问当前正在执行的构建的文本?

我尝试使用类似的东西currentBuild.logcurrentBuild.buildLog但没有任何运气。

0 投票
0 回答
937 浏览

jenkins - jenkinsfile 多环境

我有一个多环境构建:我在 mac、linux 和 windows 上构建的 Qt 应用程序。到目前为止,我正在使用“多配置项目”来构建我的 3 个奴隶并在主詹金斯上拥有 3 个工件。

现在我想对 Jenkinsfile 做同样的事情。我该如何进行?

这是我做的实验(不是我的真实项目,但它是一个简化的示例)

当我这样做时,我的主人只有一件神器。

知道我应该使用的语法吗?

0 投票
1 回答
62991 浏览

groovy - try/catch/finally 在 groovy 编译器异常的情况下掩盖 Jenkinsfile 问题

我的 Jenkinsfile 中有类似于以下代码的代码:

如果上面的代码由于一些与 jenkins-pipeline 相关的错误try { }(例如使用未经批准的静态方法)而失败,则脚本会静默失败。当我删除 try/catch/finally 时,我可以看到错误。难道我做错了什么?不应该重新抛出error使管道错误出现在日志中吗?

编辑:当我使用尚未分配的变量时,我已经设法将问题归结为 groovy 语法。示例: echo foo 如果foo没有在任何地方声明/分配,Jenkins 将失败构建,并且如果它在重新抛出异常的 try/catch/finally 内,则不会显示原因。

0 投票
2 回答
5703 浏览

jenkins - Jenkinsfile 中包含的区域的配置?

如何将 Jenkins 管道项目的范围限制为仅在使用更改特定子目录中的文件时才构建Jenkinsfile

我有一个包含两个目录的 Git 存储库。每个目录都包含一个单独的子项目,我想由 Jenkins 使用Jenkinsfile. 该项目具有以下文件结构:

Jenkinsfilefor具有以下subA配置:

Jenkinsfilefor类似,唯一的subB区别是它指定subBincludedRegions

在 Jenkins 服务器中,我创建了两个管道项目并Jenkinsfile分别指向它们。如果文件夹中的文件发生更改,subA则会触发 Jenkins 管道项目 A,如果文件夹中的文件发生更改,subB则会触发 Jenkins 管道项目 B,这正是我所期望的。

问题是如果文件被更改,Jenkins 管道项目 A 也会被触发,subB反之亦然。

詹金斯版本:2.3


注意:将设置Additional Behaviours-> Polling ignores commits in certain paths->配置Included RegionssubA/.*subB/.*分别在旧 Jenkins(版本 1.649)GUI 中会导致预期的行为。


更新:

添加excludedRegions到 Jenkinsfiles,例如

不会改变行为。尽管文件仅在一个子目录中更改,但仍会重建两个子项目。

0 投票
6 回答
74996 浏览

jenkins - 如何使用 Pipeline 引用 Jenkinsfile 目录?

我有一个 groovy 文件,我想从 Jenkinsfile 运行。

IE。load script.groovy

但是,如果它与 Jenkinsfile 存储在同一目录中,我不确定如何引用该文件。我正在从 git 加载 Jenkinsfile。我注意到它创建了一个名为workspace@script. 它不会将它放在工作区目录中。我可以对文件夹进行硬编码,但我不确定这方面的规则,再次签出代码似乎有点多余。

默认情况下,它从工作区加载,而不是workspace@script

我正在尝试将 BuildFlow 脚本转换为管道(工作流)脚本。但我发现,它不像复制和粘贴那么容易。

詹金斯文件

deploy_esb.groovy(这是来自旧的构建流程,试图在管道中运行)

0 投票
2 回答
49670 浏览

git - 带有两个 git 存储库的 Jenkinsfile

我正在使用带有 Jenkinsfile 的 Jenkins 管道插件。

在一个名为 vms.git 的存储库中,我有 Jenkinsfile 和它构建的应用程序。

我有另一个名为 deploy.git 的存储库,其中包含我想用来在 vms.git 中部署应用程序的脚本。

目前我的 Jenkinsfile 看起来像这样

我正在作业配置中定义 vms.git 存储库。

所以我想做的是检查两个存储库,然后使用 vms.git 中的 Jenkinsfile 来定义构建的其余部分。我想在其他管道中重用 deploy.git 脚本,所以我不想把 Jenkinsfile 放在那里。

0 投票
2 回答
849 浏览

jenkins-pipeline - 使用 Jenkinsfile 无意中覆盖了交付管道步骤

我创建了一个 Jenkinsfile 并添加了一个方法来签出一个 repo:

然后,我创建了一个使用“结帐:通用 SCM ”管道步骤的阶段。

我的控制台输出的结果是:

mvn -B scm:checkout -DconnectionUrl=(obfuscated) -DcheckoutDirectory=target/checkout -DscmVersion=[poll:false, scm:[:GitSCM, branches:[[name:(obfuscated)]], doGenerateSubmoduleConfigurations:false, extensions: [[:WipeWorkspace]], submoduleCfg:[], userRemoteConfigs:[[credentialsId:(obfuscated), url:]]]] -DscmVersionType=branch

因此,管道步骤“结帐”的映射似乎作为参数传递给我的自定义结帐方法并分配给 scmVersion 属性。我不明白为什么?有没有办法防止管道结帐步骤调用我的结帐方法而不重命名我的结帐方法?

0 投票
1 回答
2821 浏览

jenkins - 使用 Jenkinsfile 和 AWS Code deploy 部署应用程序

我正在从 Jenkins 1.x 迁移到 Jenkins 2。我想使用 Jenkinsfile 构建和部署应用程序。我能够构建 gradle 应用程序,但我对使用 Jenkinsfile 通过 AWS Codedeploy 部署应用程序感到困惑。

这是我的詹金斯文件

我搜索了很多教程,但他们使用的是 AWS Code 部署插件。您能帮我使用 Jenkinsfile 通过 AWS Codedeploy 部署应用程序吗?

谢谢你。

0 投票
2 回答
965 浏览

jenkins - 如何在 Jenkinsfile 中获取 github API 端点和扫描凭据

如何在管道 Jenkinsfile 中获取 github API 端点和 scan-credentials id 以运行 Github API 请求。

我正在使用 github 组织文件夹插件。