jenkins相关内容

将参数从 Jenkinsfile 传递到共享库

我有几个组件(带有自己的 Bitbucket 存储库的代码项目),每个组件都有一个 Jenkinsfile,如下所示: properties([parameters([string(defaultValue: "", description: "组件列表", name: 'componentsToUpdate'),字符串(默认值:“refs%2Fheads%2Fproject%2Fintegra ..
发布时间:2022-01-18 17:21:07 其他开发

在不同节点上运行 Jenkins 阶段

我有以下多分支管道架构的 Jenkinsfile #!/usr/bin/groovy管道{代理人 {节点{标签'ubuntu'自定义工作区“/src/$BUILD_NUMBER"}}环境 {SRC_DIR = "$WORKSPACE"BUILD_DIR="/build/$BUILD_NUMBER"}阶段{阶段(“构建"){脚步 {目录(BUILD_DIR){sh '$SRC_DIR/build. ..
发布时间:2022-01-18 17:21:00 其他开发

Jenkinsfile 和多个节点

我有一些代码需要在不同的操作系统上运行(实际上是构建、测试和打包,但例如只是运行 tox).目前我的 Jenkinsfile 看起来像这样: 管道{//在哪里运行东西.代理人 {节点{标签'CentOS7'customWorkspace '/home/build/jenkins/workspace/pipelines/ook'}}//这里要运行什么.阶段{阶段('毒'){脚步 {sh 'tox ..
发布时间:2022-01-18 17:20:53 其他开发

Jenkins Pipeline - 全局管道库更新显示在作业的最近更改列表中,如何防止这种情况?

我不希望我的全局管道更改显示在 Jenkins 更改列表中. 每当运行构建并且有全局管道更新时,该构建的更改列表包括对全局管道所做的所有更新.我只想要构建从正在构建的 SCM 分支中获取的更改列表,而不是任何全局管道更新.这可能吗? 解决方案 从 管道共享 Groovy 库插件: @Library(value="mylib", changelog=false) ..
发布时间:2022-01-18 17:20:46 其他开发

如何在多个项目中共享声明式管道

我在不同的存储库中有很多项目,它们共享相同的基本 CI 工作流程,我可以轻松地将其表示为声明式管道: 管道{代理任何选项 {buildDiscarder(logRotator(numToKeepStr: '20'))}阶段{阶段('CI'){脚步 {回声“做CI"}}阶段('QA'){脚步 {回声“做质量检查"}}}邮政 {总是 {junit allowEmptyResults: true, t ..
发布时间:2022-01-18 17:20:39 其他开发

从属性文件加载属性并使它们在整个作业/管道中可用 - Jenkins 声明性语法

我的要求很简单,我只想外化一些“值"以使我的 Jenkinsfile 更可重用,为此我需要从 Jenkinsfile 旁边的文件中加载属性,并确保这些属性在管道中的任何地方都可用.我对 groovy 和 Jenkins 代码仍然很陌生,但从未想过这么简单的事情会如此困难.我在脚本安全插件中启用了一些方法,但以下代码(以及我尝试过的几种变体)总是会出现错误或打印 null 或给我 NPE.我尝试了多 ..
发布时间:2022-01-18 17:20:30 其他开发

推送到谷歌容器注册表失败:重试

我正在尝试从我的 Jenkins 推送到 Google 容器注册表.构建在 Kubernetes Jenkins 插件中运行,该插件使用 gcr.io/cloud-solutions-images/jenkins-k8s-slave 将 docker 镜像构建到 Kubernetes 原生 Docker 中. 对 Google 容器注册表进行身份验证后,我正在尝试推送新建的映像.这是我的管道 ..

Jenkins 管道确定分支是否用于 Bitbucket 拉取请求

我将 Jenkins 与 Bitbucket 分支源插件. 一切都很好,但我希望能够根据分支是否与拉取请求相关联来运行/排除管道中的某些阶段,例如: 管道{阶段{阶段(“构建"){//编译}阶段(“包"){什么时候 {环境名称:'IS_PULL_REQUEST',值:'true'}//创建可部署的包}}} Jenkins 知道分支何时用于 PR,因为它将源与目标合并,并且还在多分支管道页 ..
发布时间:2022-01-18 17:20:02 其他开发

Jenkins 2 Multibranch Pipelines - 如何使用角色策略插件限制分支的可见性/执行?

我在具有两个分支的项目中使用多分支管道:开发和主控.这会创建两个子项目,每个分支一个: App_Pipeline|---主人|---开发 我已设置角色策略插件来根据分配的角色控制作业/管道的授权(可见性). 项目角色: ma​​nager:使用正则表达式 App_.* 开发者:使用正则表达式App_.* 以我目前的角色,两种类型的用户都可以看到超级项目(App_Pipeli ..

Jenkins + Git:仅当 PR 在子目录中引入更改时才构建

我们有一个大型 monorepo,其中包含多个项目(A 和 B).我目前将 Jenkins 设置为一个多分支流水线项目,用于监视 PR 的 monorepo.如果创建了 PR,Jenkins 会同时构建 A 和 B. 现在,我希望 Jenkins 更聪明,并且仅在 PR 中的任何更改引入了 A/ 目录的更改时才构建项目 A.事实证明这非常困难. when { changeset "A/ ..
发布时间:2022-01-18 17:19:42 其他开发

如何在管道步骤中使用 Jenkins 侧边栏链接插件?

我正在开发这个插件 https://plugins.jenkins.io/sidebar-link/ 在 jenkins 侧边栏中添加链接.该插件适用于 jenkins 项目配置.现在我正在尝试添加一个管道步骤来调用这个插件. 我已经尝试了下面的代码行,但它不起作用 sidebarLinks {链接(“我的网址",“标题",“图像路径")} 我已经阅读了这方面的主题,但没有找到接受的回复 ..

具有扩展选择参数的 Jenkins 声明式管道

我尝试使用 Jenkins 实现我的第一个声明式管道,以便能够将作业的参数定义也放在 ​​SCM 下. 我想转移具有扩展选择参数的现有工作.不幸的是,我无法将其添加到脚本的参数{...} 部分. 在插件页面上:https://wiki.jenkins-ci.org/display/JENKINS/Extended+Choice+Parameter+plugin 我发现一条评论说应该可以 ..
发布时间:2022-01-18 17:19:26 其他开发

Jenkinsfile:在 Docker 容器中运行 sh 步骤时权限被拒绝

我无法运行一个简单的 Jenkinsfile - 例如 管道{代理{标签'ssh-slave'}阶段{阶段(“外壳测试"){脚步 {sh '回声“你好世界"'}}}} 主服务器上 Jenkins 的日志文件显示容器已成功启动,但构建作业崩溃并显示如下消息 sh: 1:/home/jenkins/workspace/pipeline@tmp/durable-34c21b81/script.sh ..
发布时间:2022-01-18 17:19:03 其他开发

如何在 Jenkins 的动态管道中使用 failFast

我有具有动态并行阶段的管道,如果任何阶段发生故障,我希望我的管道快速失败.我尝试添加 failFast: true 但我的管道卡在“在 ABC 阶段失败". 阶段(“部署"){脚步 {脚本 {def stage = createStages("名称", "项目")快速失败:真对于(分阶段){平行阶段}}}} 解决方案 解决方案: 在 Jenkins 管道上使用 failFast flag. ..
发布时间:2022-01-18 17:18:55 其他开发

在詹金斯中并行运行两条管道时出现死锁

目前我有以下问题.我已经编写了一个 Jenkinsfile 来在管道中构建我的存储库.每个存储库在多分支管道中都有自己的管道.每当我推送存储库时,管道就会开始工作. 对于建筑物,我有一个带有两个节点的代理.当 Multibranch Pipeline 运行时,Multibranch Pipeline 使用一个节点执行单个 Pipeline,第二个节点由当前正在执行的管道使用来运行单个 Job ..
发布时间:2022-01-18 17:18:44 其他开发

如何使用 Jenkins Pipeline 文件夹级共享库?

我们的组件很少,它们存储在自己的 git 存储库中.这些组件的特定组合作为不同类型的部署/客户的解决方案构建和交付.因此,我们有一个管道 git 存储库,其中包含多个 Jenkinsfile(具有不同的名称 - 以及构建名称). 显然,这些管道之间有很多共同点.我知道 Jenkins 共享库,当他们获得自己的 git 存储库时它可以工作.但是,由于我的管道已经在专用的 git 存储库中,我很 ..
发布时间:2022-01-18 17:18:29 其他开发

Jenkins 管道可以有可选的输入步骤吗?

是否可以创建带有可选输入阶段的 Jenkins 管道? 下面的代码段没有达到这个目标. 预期行为 阶段(以及因此的输入提示)应该只针对特定分支运行. 实际行为 此阶段适用于所有分支.使用输入步骤时忽略 when 过滤器. stage('Approve') {什么时候 {表达式 { BRANCH_NAME ==~/^qa[\w-_]*$/}}输入 {消息“批准发布?" ..
发布时间:2022-01-18 17:18:23 其他开发

如何获取当前 Jenkins 用户的电子邮件地址以在 groovy 脚本中使用

我为新的 Jenkins 工作流插件创建了一个 groovy 脚本,https://github.com/jenkinsci/工作流插件.我希望它在下一步需要输入时向开始工作的用户发送邮件.我尝试搜索 API,但找不到任何有关获取用户电子邮件地址的信息. 我会想到这样的事情. 导入 hudson.model.Userdef user = User.current()def mailAddr ..
发布时间:2022-01-18 17:18:13 其他开发