问题标签 [jenkins-declarative-pipeline]
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.
jenkins - 在声明式詹金斯管道中获取 SVN 修订版
我有一个简单的问题:如何在声明性 jenkins 管道中获得 svn 修订版。类似于这个帖子。
到目前为止我发现了什么:
当您使用Freestyle 作业时,只需使用
当您使用Scripted Pipeline时,请使用以下命令:
但是如何在声明式管道中获得 SVN 修订版?SVN_REVISION
未定义,def
在声明性管道中不允许,并且checkout scm
仅适用于多分支管道。
jenkins - 如何从 Kubernetes 的一次性进程中获取文件?
我有一个测试过程,它产生一个文件作为输出。
我想在构建期间开始这个测试过程,运行它直到完成,然后收集它生成的文件并将其复制回构建上下文。
在 Kubernetes/Helm 中执行此操作的正确方法是什么?
kubectl
构建过程可以访问helm
CLI 工具。
我有一个不使用的要求kubectl exec
,因为集群设置不允许。
一些细节:
我能够使用Pod
.
我设置了将输出文件存储在卷挂载中的过程,该卷挂载被挂载到emptyDir
卷上。
我无法弄清楚如何获取输出文件。
我试过kubectl cp
了,但我无法让它工作(没有这样的文件或目录)。
我不知道如何检查已停止容器的内容。
我无法弄清楚如何查看卷中的内容。
kubectl logs
表明测试过程运行成功。该文件在容器内生成并存储在预期位置。
快速更新:
在我的本地 minikube 环境中,我能够设置一个持久卷并将输出文件复制回主机文件系统。接下来我将在 Jenkins 环境中尝试一下。
这是kubectl cp
我的本地(boot2docker)环境的输出:
/home/node/output
是容器内的 volumeMount 路径。
jenkins - 使用在 Jenkinsfile 内部构建的其他作业中创建的变量
我需要阅读在另一个工作中创建的一些变量。用伪代码更容易解释:我的工作:
最好使用声明式管道,但我总是可以使用脚本 {}
jenkins - Jenkins 声明式管道:在不阻塞执行器的情况下使用条件步骤输入
我试图让以下功能在 Jenkins 的声明式管道语法中工作:
- 仅在
master
分支上条件执行某些阶段 input
要求用户确认以部署到暂存环境- 在等待确认时,它不会阻止执行者
这是我最终得到的结果:
问题是阶段 2 需要来自 1 的输出,但在运行时不可用。如果我用agent
global 替换各种指令agent any
,则输出可用,但执行程序在第 3 阶段被阻止等待用户输入。如果我尝试将 1 和 2 组合成一个阶段,那么我将失去有条件的能力仅在master
.
有没有办法实现我正在寻找的所有行为?
docker - Jenkins Docker Declarative .withRun
I am using the declarative format for pipeline files and running inside of a docker container that is defined using a Dockerfile in my project's root directory.
My Jenkinsfile looks like this:
I would like to pass additional arguments to the docker run command similar to this question ... How to pass docker container arguments when running the image in a Jenkinsfile
Is it possible to do that in the declarative pipeline format, or should I switch?
Edit:
This is essentially the equivalent of what I am trying to do in non-declarative:
jenkins - 您如何仅在 Jenkins 声明式管道中的 master 上运行“输入”阶段?
我在 Jenkins 声明性管道中有一个阶段,我想在手动触发时有条件地运行,并且只能在master
分支上运行。
我希望对于除 之外的分支完全跳过此阶段master
,但在实践中发生的情况是它会为所有分支暂停。有没有办法得到我所追求的行为?
jenkins - 在我的 Jenkins 声明式管道中的多个代理上运行相同的任务
我有一个像这样的块:
我想通过更改标签以有点像循环的方式运行相同的任务。我想尽可能地消除冗余。
jenkins-pipeline - Jenkins 声明性管道作业 - 如何跨从属分配并行步骤?
我正在运行一个声明式管道,其中一个步骤运行一个(非常长的)集成测试。我正在尝试将我的测试分成几个较小的测试并在多个节点上并行运行它们。我有 8 个这些较小的测试,我有 8 个节点(在一个标签下),所以我想让每个测试在一个单独的节点上运行。不幸的是,两个测试——当在同一个节点上运行时——相互干扰,因此都失败了。
我需要能够首先获取可用节点列表,然后并行运行较小的测试,每个节点一个;如果没有足够的节点,较小的测试之一需要等到节点完成。
但是,发生的情况是,当按标签请求节点时,两个较小的测试通常会得到相同的节点,因此都失败了。节点配置为最多运行 3 个执行程序,否则整个系统会停止,所以我无法更改。
我当前对较小测试的配置是:
我可以从这样的标签中获取可用奴隶的列表:
在哪里
如何以编程方式从free_nodes
数组中获取节点名称并指示舞台使用它?
jenkins - Jenkins job dsl 配置服务器、节点、插件等
我使用 Jenkinsfiles/multibranch 管道。
我使用作业 dsl 来创建这些多分支管道。
所以在这一点上,我的工作配置已经完全编码。
但是 Jenkins master 本身的配置仍然是手动的。作业 dsl 是否也可以执行诸如安装和配置插件、配置安全设置以及创建和配置节点设置之类的工作?