问题标签 [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.
jenkins - 我应该使用 Jenkins 重量级或轻量级执行程序进行通知吗?
我的 Jenkins 管道中有几个步骤可以通知用户,在我的情况下使用 Slack 集成。
node
在块内编写通知代码以使用重量级执行器还是将其留在外部以使用轻量级执行器是一种好习惯?
根据文档:
每个 Pipeline 构建本身都在 master 上运行,使用 flyweight executor——一个不计其数的 slot,假定它不会占用任何显着的计算能力。
这个执行器代表实际的 Groovy 脚本,它几乎总是空闲的,等待一个步骤完成。
享元执行器始终可用。
阅读完这篇文章后,我仍然不清楚通知使用重量级或轻量级执行程序是否被认为是一种好习惯
jenkins - 从另一个 Jenkinsfile 调用远程 jenkins 文件
我正在我的组织中设计一个 Jenkins CICD 管道,我有一个以下问题。
我来自一个为多个开发团队控制 Jenkins 管道的 devops 团队。我基本上想编写一个可以由多个团队运行的具有多个阶段的 Jenkins 文件。我知道这个 Jenkins 文件可以签入每个团队的 Gitrepo,并且只要对代码仓库进行更改,它就可以调用完整的管道。
为了确保这个 JenkinsFile 是可维护的,并且对于这个 Jenkins 文件的任何未来更改,我不必要求所有不同的团队在他们的 Gitrepo 中更新这个文件,我想把这个文件放在由我的团队控制的中央 Gitrepo .
是否可以从不同的 Gitrepos 调用这个 Jenkins 文件?有什么例子吗?
jenkins - 有没有一种简单的方法可以将现有的 Jenkins 自由式作业转换为 New Jenkins 2.x 管道视图
我的旧 Jenkins 实例中有大量现有的 Freestyle Jenkins 作业,现在我想使用 Jenkins 文件将它们迁移到新的 Jenkins 2.0 管道作业。
我正在关注此页面以创建 Jenkins 文件:https ://jenkins.io/doc/book/pipeline/jenkinsfile/
如果有任何简单的方法(或)插件可以用来将这些现有工作转换为管道视图,有人可以建议我。
jenkins - 如何在 groovy Jenkinsfile 中选择不同的 git repos(main & forked) 来运行 Jenkins2.0 作业
我有一个 Jenkinsfile,当代码合并时,Jenkins2.0 使用它在 GitHub 存储库上运行,该作业将检查代码,运行单元测试并构建它。
我想在分叉的 GitHub 存储库上使用相同的 Jenkinsfile,但只想签出代码并构建代码。
git - Jenkins 工作流中 GitHub 组织的环境变量
无论如何,我可以通过 Jenkinsfile 获得运行 Jenkins 工作流程的 GitHub 组织。
我可以通过 BUILD_URL 检查它
但是我可以在控制台中打印 GitHub repo url 或 GitHub 组织吗?
jenkins - 访问詹金斯管道中的工作区
我有一个 jenkins 管道作业,作业配置从 repo 中提取 Jenkinsfile。一旦作业运行并拉取 jenkinsfile,它就会克隆 repo,我可以在作业的工作区图标中看到它。
现在,当我在 Jenkinsfile 中执行 cd ${workspace} 和 ls 时,它不会显示任何内容。如何访问 Jenkinsfile 的 repo 的工作区?还是它只是存储 Jenkinsfile 本身?
这是我的 Jenkinsfile :
当我运行它时,我得到以下日志:
我的具体问题是,要获取 Jenkinsfile,它会克隆 djin-sg 存储库。它也在工作区中。那么当我执行 ls 为什么它不显示任何文件?
当我进入 Jenkins 作业管道步骤并在控制台中打开工作区时,我可以在工作区中看到完整的存储库,但我似乎无法在工作中访问它。
jenkins - 管道使用来自由相同 git 分支名称关联的 2 个项目的工件
我工作的公司正在评估 jenkins 2.71,特别是管道和蓝海插件。我们已经测试了GoCD,我们需要一种方法,就像在GoCD中一样,管道可以自动从其他 2 个管道获取工件(获取每个管道的最后一个成功结果),这里是我们的案例。
我们有这些初始管道(构建和运行测试),它们反映了 2 个项目:
- 前端,~ 15 分钟
- 后端,约 10 分钟
我创建了一个名为configure的管道(大约 1 分钟),例如一个名为customer-name的参数,它获取后端和前端文件并将它们放在一起,然后应用特定的客户特定配置和定制并生成可部署的工件。除了“客户名称”,我还可以并行化这项工作,一次为每个客户创建所有工件,在不同的目录中分开。
下一个管道是将它们部署在为每个客户分开的不同测试服务器上。这也可能是同一个配置管道的一部分,我们仍然需要看看如何在詹金斯中把东西放在一起......
理想情况下,我需要将管道配置为在每个前端或后端成功后自动(或按需)触发,并将这两个管道中最后成功的工件作为输入,但不仅仅是最后一次成功的构建,我们需要依赖 git分支名称。
例如我们有:
后端分支:
- 掌握
- 发布/2017.2
前端分支:
- 掌握
- 发布/2017.2
在管道编辑器中,我找到了一个Build Triggers选项并将其设置如下:构建其他项目后构建>要观察的项目:前端,后端>仅当在我充满失败的测试环境中构建稳定或更好时才检查触发器甚至触发如果构建不稳定。
进一步搜索,我找到了Copy Artifact Plugin
但现在最大的问题是,如何从这些管道中获取具有相同 git 分支名称的最后成功的工件?
因为我们不想将“release/2017.2”的后端构建与前端“master”混合在一起,所以它必须找到具有相同关系或参数或任何您想称呼它的最后一个成功构建,在我们的例子中关联是 git 分支名称。
有可能实现这一目标吗?如果是,如何?
复制工件插件似乎适用于自由式项目。它会在管道中工作吗?这也是一个担心...
谢谢
jenkins - Jenkins复制工件无法找到文件夹/multiProjectPipeline/branchWithSlash
我在 Windows Server 2016 上有 Jenkins LTS 2.60.2 并使用这些插件:
- 文件夹插件 (6.1.0)
- 复制神器插件 (1.38.1)
- 管道插件(2.5)+所有依赖的管道子插件
- 各种其他依赖插件...
有关我的设置的更多详细信息,请参阅管道以使用由相同 git 分支名称关联的 2 个项目中的工件,但总而言之,我有以下项目:
- 游乐场(使用文件夹插件创建的文件夹,用于对以下所有项目进行分组)
- 前端(多分支管道)
- 后端(多分支管道)
- 配置(带有名为 BRANCH_NAME 的参数的管道)
前端和后端git repos都有一个名为master的分支和一个名为release/2017.2的分支。
这个想法是在每次成功构建后自动调用配置管道,并传递 git 分支名称。自动触发配置管道工作。
什么不起作用,我需要你的帮助来解决,是配置管道中从 multibranchPipeline/specificBranch 复制工件的步骤。
如果 BRANCH_NAME 参数(或上游管道)是master它可以工作。如果 BRANCH_NAME 是:release/2017.2我收到此错误:
错误:无法找到工件副本的项目:playground/frontend/release%2f2017.2 这可能是由于项目名称或权限设置不正确;请参阅作业配置中项目名称的帮助。完成:失败
配置管道如下所示:
如您所见,我已经将 / 替换为 %2f (这是必需的)。
如果我不使用“playground”文件夹(我的所有管道都原样,而不是在文件夹项中),它就可以工作。如果我使用该文件夹并使用 master 分支,它就可以工作。如果我使用文件夹和分支名称(如 2017.2),它不起作用。我究竟做错了什么?你能帮忙让它工作吗?好吧,如果它是一个错误(我在https://issues.jenkins-ci.org中搜索并发现了一些错误,其中文件夹的类似设置不起作用,但它们已被修复......所以我真的很想知道...... .) 在复制工件插件中,请在此处提交错误并分享链接,以便我们都可以监控其进度...
谢谢你。
jenkins - Jenkins upgrade from 1.6xx to 2.xx (1.642.3 -> 2.32.2)
I upgraded Jenkins to 2.32.3 version (in place upgrade) after taking necessary backups (THIN) or $JENKINS_HOME and Jenkins is now UP and running.
Under Manage Jenkins > Manage Plugins, I see the following RED error:
While trying to install Environment Inject Plugin 2.1.3, the logs (during download/install) shows the same error:
Where can I get this envinject-api 1.2 plugin? Should I go grab the Github project (clone it) and build the Maven project and put the hpi file under $JENKINS_HOME/plugins folder?
Under Available plugins tab, I don't see an option to select a given version (only 2.1.3 is available). I don't see envinject-api 1.2 plugin listed there either that I can select. My understanding it, selecting Environment Inject 2.1.3 should auto grab all of its dependent plugins for free per it's MANIFEST file.