jenkins-pipeline相关内容

将 Jenkins 管道限制为仅在特定节点上运行

我正在构建将广泛使用 Jenkins 管道的工作.我们的节点由它们的标签为每个项目指定,但与常规作业不同,管道构建似乎没有“限制该项目可以运行的位置"复选框.如何指定管道将按照我对常规作业的方式在哪个节点上运行? 解决方案 您在执行 node 步骤时指定所需的节点或标记: node('specialSlave') {//将在具有名称或标签 specialSlave 的从站上运行} 请参 ..
发布时间:2022-01-18 17:08:35 其他开发

在 Jenkins 中对参数组进行分组和装饰

我正在编写一个包含很多参数的 Jenkins 流水线作业,我正在寻找一种将它们直观组合在一起的方法,以便它们更容易理解 - 而不是全部扔在那里.我会满足于任何至少暗示这些参数彼此相关的事实.可以是标题,也可以是盒子.是否有任何插件可以帮助我以这种方式装饰我的输入? 解决方案 所以,在网上搜索了很多之后,我终于找到了一个可以解决问题的插件.参数分隔插件.wiki 页面没有说明如何使其在管道中 ..
发布时间:2022-01-18 17:08:27 其他开发

Jenkinsfile Parameterized Builds 中的 Environment 和 Parameters 有什么关系?

我最近在与同事一起开发一些 Jenkins 构建时遇到了一些难题.他一直在使用 params.VARIABLE 和 env.VARIABLE 并且没有任何问题.同时,我开始在他通过这行代码的环境调用参数对象时收到空对象错误: if(!deploy_environments.contains(env.ENVIRONMENT_NAME.trim()) || params.INVOKE_PARAMET ..
发布时间:2022-01-18 17:08:17 其他开发

Jenkins 管道:签出显式 git commit

我希望能够说类似的话: git 分支:commitHash,credentialsId:credentialsId,url:url 用例:我在不同平台上进行并行构建和测试运行,并希望确保每个平台都获得相同的代码.它是 C++,我们在不同的平台上构建以及构建在它们之上. 如果我执行上述操作,它会失败 - 底层代码假定给定分支实际上是一个分支,或者你会得到类似的东西: [Linux64 B ..
发布时间:2022-01-18 17:07:54 其他开发

Jenkins Pipeline 中的环境变量

是否有任何环境变量可用于获取 Jenkins Pipeline Title? 我知道我们可以使用 $JOB_NAME 来获得自由式工作的头衔,但是有什么可以用来获取管道名称的吗? 解决方案 您可以使用相同的名称从 groovy 访问相同的环境变量(例如 JOB_NAME 或 env.JOB_NAME). 来自文档: 可以从 Groovy 代码中以 env.VARNAME ..
发布时间:2022-01-18 17:07:37 其他开发

Jenkins:找不到名为 MSBuild 的工具

在 Jenkins (Jenkins 2.6) 中设置流水线构建,复制基于 git 的构建的示例脚本会给出:“找不到名为 MSBuild 的工具".我在 Manage Jenkins -> 中设置了 MSBuild Tool全局工具配置.我在从节点上运行管道. 在Slave配置中,我在Node Properties ->中设置了MSBuild工具路径.工具位置. 在构建过程中它无法获取 M ..
发布时间:2022-01-18 17:07:27 其他开发

管道参数和 jenkins GUI 参数如何协同工作?

我在 jenkinsfile 中使用管道,但我不确定如何正确链接 Jenkins 中的作业和管道. 我在我的 jenkinsfile 中定义了参数(一些具有默认值,一些没有)并使用来自 jenkins gui 的参数初始化它们.问题是它接缝我的管道中的参数覆盖了我的作业参数,即使管道中没有指定默认值,这意味着管道正在覆盖我在 jenkins 中的作业设置. 例如,我的一项工作是设置使用 ..
发布时间:2022-01-18 17:07:20 其他开发

如何使用 Pipeline 引用 Jenkinsfile 目录?

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

Jenkins 管道插件:设置构建描述

我正在尝试用一个使用 Jenkins 管道插件并从项目存储库加载 Jenkinsfile 的新工作替换我们当前的构建管道,该管道目前使用老式 Jenkins 作业一起破解. 遗留工作所做的一件事是使用 Description setter 插件,这样构建很容易找到. 有没有办法使用 Jenkins 管道插件复制/模拟这种行为? 解决方案 刚刚想通了.管道作业公开了一个具有可写属 ..
发布时间:2022-01-18 17:06:53 其他开发

在 IntelliJ 的 Java 项目中使用 .gdsl 文件

我有一个文件 pipeline.gdsl,其中包含我的 Jenkins Pipeline DSL 的语法.在 这篇博文之后,我将文件放入 /src 文件夹.当我现在编辑我的 Jenkinsfile (位于我的项目的根文件夹中)时,我没有得到任何我期望的代码完成/语法解释. 我的项目是一个 Java/Gradle 项目,我不能用它制作一个 Groovy 项目.是否有其他方法可以让 Intell ..
发布时间:2022-01-18 17:06:46 Java开发

Jenkins Pipeline sh 显示名称/标签

使用 Jenkins 2 流水线插件,有一个有用的功能允许快速概览流水线阶段和步骤状态,包括日志输出. 但是,如果您使用“Shell 脚本"(sh) 步骤,似乎没有办法用有用的名称标记该脚本,因此显示屏仅显示一长串“Shell 脚本"(如下图所示). 如何指定一个有用的名称,或者如何使用其他步骤来达到相同的效果? 解决方案 2019 年 2 月更新: 根据 gertvdi ..

创建可重复使用的詹金斯管道脚本

我最近正在考虑使用 Jenkins 管道脚本,一个问题是我没有找到一种聪明的方法来创建内部可重用的 utils 代码,想象一下,我有一个通用函数 helloworld将被很多管道作业使用,所以我希望创建一个 utils.jar 可以将其注入到作业类路径中. 我注意到 Jenkins 与 全局库,但我对这个插件的担忧: 由于它是一个插件,所以我们需要通过 jenkins 插件管理器安装/ ..
发布时间:2022-01-18 17:06:21 其他开发

Jenkinsfile 和不同的分支策略

我正在尝试将 Jenkins 文件用于我们在 Jenkins 中的所有构建,但我遇到了以下问题.我们基本上有 3 种构建: pull-request build - 它将在代码审查后合并到 master,如果构建有效 手动拉取请求构建 - 与上述相同的构建,但可以由用户手动触发(例如,如果我们有一些不稳定的测试) 一个初始的持续交付管道 - 这将构建代码、部署到存储库、从存储库安装工件到 ..
发布时间:2022-01-18 17:06:14 其他开发

从同一存储库加载 Jenkins Pipeline 共享库

TL;DR 有没有办法将代码从本地 存储库导入到 Jenkinsfile (除了 load 步骤)? 为什么? 我已经体验到,对于复杂的构建,Jenkinsfile 会变得有点笨重且不太易于维护. 既然构建工作是代码,那么拥有与其他代码相同的方法会很棒.也就是说,我想把它分成更小(更易于维护)的单元并单元测试它们. 我尝试了什么 共享库:允许将我们的 Jenkins 流水 ..
发布时间:2022-01-18 17:06:04 其他开发

如何在本地测试对 Jenkinsfile 所做的更改?

在编写 jenkins 管道时,提交每个新更改以查看它是否有效似乎非常不方便. 有没有办法在不提交代码的情况下在本地执行这些? 解决方案 你不能在本地执行 Pipeline 脚本,因为它的全部目的是编写 Jenkins 脚本.(这就是为什么最好保持 Jenkinsfile 简短并仅限于实际处理 Jenkins 功能的代码的原因之一;您的实际构建逻辑应该由您通过调用的外部进程或构建工具 ..
发布时间:2022-01-18 17:05:58 其他开发

Jenkins 在给定的时间间隔触发构建步骤/阶段(不是整个作业)

我正在尝试构建一个管道,我需要在其中链接多个作业,其中一些作业必须在某个时间开始. 例如:Job1(从午夜开始)-> Job2 -> Job3 ->Job4(从下午 4 点开始) 使用声明式语法: 管道{代理任何阶段{stage('获取最新代码-1') {脚步{构建作业:'获取最新 - 所有节点', quietPeriod:60}}阶段('CI Day - 1'){平行线 {阶段(' ..