问题标签 [jenkins-2]

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 投票
3 回答
9736 浏览

jenkins-pipeline - Jenkins 多管道构建未检测到存储库中的更改

我们在这个庄园中有一个 Subversion 存储库设置:

  • http://svn.vegicorp.net/svn/toast/api/trunk
  • http://svn.vegicorp.net/svn/toast/api/1.0
  • http://svn.vegicorp.net/svn/toast/data/trunk
  • http://svn.vegicorp.net/svn/toast/data/branches/1.2
  • http://svn.vegicorp.net/svn/toast/data/branches/1.3

我为整个toast项目(包括所有子项目)设置了 Jenkins Multi-Pipeline 构建——每个子项目都是一个 jarfile。我想要的是让 Jenkins 每次在其中一个 toast 项目中更改任何文件时启动一个新构建。该项目应该重建。这样,如果我们在 toast 中创建一个新的子项目在其中一个toast子项目中创建一个新分支,Jenkins 将自动为此创建一个新的构建。

这是我的 Jenkins多分支设置:

分支来源

颠覆

  • 项目存储库基础http://svn.vegicorp.net/svn/toast
  • 凭证builder/*****
  • 包括分支*/trunk, */branches/*
  • 排除分支*/private
  • 属性策略所有分支获得相同的属性

构建配置

  • 模式由 Jenkinsfile

构建触发器(未选择

  • 远程触发构建(例如,从脚本) 功能帮助:触发 * 远程构建(例如,从脚本)
  • 定期构建功能帮助:定期构建
  • 在提升另一个项目时构建
  • Maven Dependency Update Trigger 功能帮助:Maven Dependency Update Trigger
  • 如果没有,则定期运行

请注意,Build Triggers列表不包括Poll SCM。存储库中的更改不会触发任何构建。Jenkinsfiles位于每个子项目的根目录。如果我强制重新索引,则会构建所有更改的子项目并找到所有新分支。我最初确实定期检查并每分钟重新索引以获取更改,但这很笨拙,似乎导致詹金斯消耗内存。

在 SCM 更改上触发构建应该是非常基本的,但我没有看到与标准作业一样的配置参数。我似乎也无法进入子项目并将其设置为触发构建。

一定有一些非常非常简单的东西我错过了。

配置:

  • 詹金斯 2.19
  • 管道 2.3
  • 管道 API:2.3
  • 管道 Groovy:2.17
  • 管道作业:2.6
  • 管道 REST API 插件:2.0
  • 管道共享 Groovy 库:2.3
  • 管道:舞台视图插件:1.7
  • 管道:支持 API 2.2
  • 单片机 API 插件:1.2
0 投票
2 回答
3560 浏览

jenkins - Jenkins 2 Pipelines - 如何为持续交付管道建模

我对 Jenkins 2 管道完全陌生。

我曾使用以下视图使用 Jenkins 1 管道:

在此处输入图像描述

你可以直接启动某个阶段,比如说我可以选择从发布阶段开始运行,跳过Test。

我有一个非常简单的 Jenkins 2 管道定义:

在管道页面中,我有“立即构建”,它运行从准备开始的所有阶段。

我的问题是:

  1. 如何运行我喜欢的舞台?例如问候而不是从准备开始?
  2. 你如何定义阶段之间的依赖关系?我的意思是另一个阶段完成后调用的阶段
  3. 有没有办法限制某个用户可以开始的阶段?想象一下,我只希望特定用户启动 Greeting 阶段。
  4. 你如何设置手动阶段?

更新:我的问题背后的真正目标是使用Jenkins 2 管道对如下所示的持续交付管道进行建模:

这是我想要的行为:

构建阶段(任何用户都可以启动它)完成后它会自动触发Acceptance Stage。这个不能手动启动,只能在成功完成构建阶段后自动启动。

Acceptance Stage我需要只有授权用户才能手动触发QA StageProduction Stage

业务流程是:开发人员进入构建阶段,构建并打包其代码。验收阶段开始,使用打包的代码运行一堆自动化测试。

此时,当 Acceptance Stage OK 完成时,可能会发生两件事:

  1. 也许需要 QA 阶段来运行更多测试(Cucumber、手动等)。一些授权用户会触发这个阶段。
  2. 当产品负责人高兴时,他可以决定启动生产阶段以在生产环境中部署代码。

我正在努力使用 Jenkins 2 管道对此进行建模。

0 投票
2 回答
4525 浏览

bitbucket - Jenkins Bitbucket Branch Source Plugin 如何只构建master和PR?

我将 Jenkins 2 与Bitbucket 分支源插件一起使用,它扫描并构建所有分支和 PR。

我的问题是,当我将代码推送到 PR 时,分支会构建两次(一个用于分支,一个用于 PR)。我只想建立大师和公关。

有人知道该怎么做吗?我找不到任何关于此的文档。

Branch Indexing Log(没有过滤器):

然后,当我尝试过滤 PR-* 时,没有扫描任何内容。我只是得到:

0 投票
2 回答
9394 浏览

jenkins - Jenkins 2 NPM_TOKEN 凭证

我正在尝试运行将用于npm publish将包发布到本地 NPM 存储库的 Jenkins 2 管道(Jenkinsfile)。
为了做到这一点,我尝试在 Jenkinsfile 中使用以下阶段:

目前我只在运行npm whoami,一旦运行,我将用npm publish.

这是我得到的输出:

0 投票
1 回答
379 浏览

jenkins - 如何将 Jenkins 1 中作业的构建参数远程添加到 Jenkins 2 中的另一个作业中?

我在不同的机器上有两个 Jenkins 环境,而且都是不同的工作。

Jenkins 1 中的作业使用 Parameterized Remote Trigger 插件触发 Jenkins 2 中的远程作业。

有没有一种方法可以将 Jenkins 1 中的作业中的构建参数添加到 Jenkins 2 中的作业中?

0 投票
2 回答
13236 浏览

jenkins-pipeline - 获取之前的构建结果

当构建变得不稳定/失败或再次成功时,我想模仿最初的 Jenkins 做事(比如发送通知)的行为。

为此,我需要查询之前的构建状态,可以这样完成:

但是,rawBuild它应该是一个“危险”对象,因此被列入黑名单,不能在 Groovy 沙箱中执行

现在,由于我正在从 SCM 加载我的 Jenkins 脚本,因此我无法在每个项目级别停用 Groovy 沙箱,而只能针对整个 Jenkins 实例(即通过 this),这当然不是什么我想。

是否有任何其他方法可以确定我错过的符合沙盒原则的作业的最后构建状态(并且不包括通过 Jenkins 的 REST API 查询状态等黑客行为)?

0 投票
0 回答
588 浏览

windows - 如何在登录的 Active Directory 用户的上下文中运行 Jenkins 作业(Powershell 命令)

语境:

  1. 使用 Active Directory 设置创建域控制器。
  2. 创建另一个安装了 Jenkins-2 的服务器。(DNS 正确指向域控制器)
  3. 安装了 Active Directory 插件
  4. 安装了 Powershell 插件
  5. 使用命令创建了一个 Powershell 作业 Copy-Item -Path \\SFTPServer\Docs\file.txt $Home

脚步:

  1. 列表项 Logged in to Jenkins Server Machine with credentials ofglobomantics.local\administrator
  2. 列表项 Started Jenkins 可在 localhost:8080 上使用
  3. 使用以下凭据登录 Jenkins 的列表项globomantics.local\someunderprivilegeduser
  4. 列表项 运行上面创建的 Powershell Job

会发生什么: Powershell 窗口出现并在 AD 用户的上下文中运行命令 ..globomantics.local\administrator

需要什么: Powershell 命令在以下上下文中运行globomantics.local\someunderprivilegeduser

我知道当我们使用 登录 jenkins 时globomantics.local\someunderprivilegeduser,会在这台机器上生成一个 kerberos 票证。我如何使用该票证来运行这个 powershell 命令?或者,如果我的方法完全错误,还能做什么?

注意:假设不允许读取,在这种情况下,Powershell 作业应该失败globomantics.local\someunderprivilegeduser。但是,由于作业在 的上下文中运行,因此作业运行成功。\\SFTPServer\Docs\file.txtglobomantics.local\administrator

0 投票
1 回答
931 浏览

jenkins - 詹金斯 2 覆盖 plugins.txt

我正在从 Jenkins 1.6 迁移到 Jenkins 2.0。我正在使用 docker 创建和运行 Jenkins。

为了配置为不可变的詹金斯,我们曾经复制所有 xml 配置文件并使用 plugins.txt 安装所有必要的插件。

但现在的问题是,在我们初始化 Jenkins 并连接后,我只看到一个向导屏幕,要求我输入管理员密码,该密码位于路径中。输入该密码后,他要求安装插件,我希望已经安装了。

完成该向导后,我的 plugins.txt 列表中没有安装任何插件,或者我在 users 文件夹中传递了任何用户。

知道如何解决这个问题吗?在 Jenkins 1.6 中一切正常。

0 投票
1 回答
116 浏览

jenkins-2 - Jenkins2 中的清洁工作区

我在 Jenkins2 中有一个问题,即构建失败,只有清理工作区才能解决问题。在 Jenkins1 中我能够手动清理工作区,在 Jenkins2 中我没有看到这个问题。

我正在删除远程分支并重新创建它们以清理工作区,但我无法为 master 执行此操作。

如何在不删除远程分支的情况下清理工作区?

0 投票
2 回答
608 浏览

jenkins - Jenkins 限制流水线中的 Perforce 视图

我有一个 Jenkins2 管道,我可以在其中同步:

其中myStream是传递给 Jenkins Build Job 的参数。

我们确实有具有几 GB 数据的流,对于所有这些流,我只对只有几 MB 的特定子目录感兴趣。

有没有办法将客户端视图缩小到任何传入流的单个子目录?