问题标签 [promoted-builds]

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 投票
1 回答
602 浏览

git - 遗留代码开始了这项工作。没有可用的原因信息

詹金斯上总是有一个由“提升构建插件”触发的额外构建,我不知道为什么......

这是整个管道:

  1. dev 将“feature_branch”提交到 github
  2. jenkins 在“feature_branch”上触发构建以运行所有单元测试

在构建工作中:

  • 如果分支通过测试,它应该去“代码审查”(我这里使用promote_build_plugin,代码查看后手动提升),
  • 我使用“在其他项目上触发/调用构建”作为触发“部署作业”进行构建的操作,前提是它通过了代码审查。

在部署作业上:
我可以看到一个新的构建被触发并且 feature_branch 被合并,但总是有另一个构建发生,“没有变化;旧代码启动了这个工作。没有可用的原因信息”

我google了一个下午试图解决这个问题,有什么帮助吗?

0 投票
1 回答
1815 浏览

git - 如何处理詹金斯上提升的冲突分支

这个想法是:

  1. 所有开发人员都在他们的功能分支上工作并将它们推送到 github
  2. jenkins 在作业测试中开始构建(由“push on github”触发)以在这些功能分支上运行单元测试
  3. 一旦他们通过测试,经理就会去 github 进行代码审查。
  4. 如果代码审查没问题,那么这个构建被手动提升(提升构建插件)到“通过 QA,准备好生产”,在“操作”部分,我们设置“触发/调用其他项目的构建”以触发单独的作业测试-prod仅将此功能分支合并到远程 repo 上的 master 。

作业测试提升构建配置: 在此处输入图像描述

作业测试产品SCM 配置: 在此处输入图像描述

所以这里有两个问题:

  1. 在第 4 步中,我们遇到了 2 个相互冲突的功能分支都通过了代码审查的情况,第一个被提升的分支会很好,但第二个会出现冲突和失败,有没有办法在之前检测到冲突?我知道“构建前合并”可以避免冲突,但这需要前一个分支已经合并到远程主控

  2. 在没有冲突的情况下,每当手动提升触发第二个作业时,总会有一个额外的构建导致:“遗留代码启动了这个作业。没有可用的原因信息”,我不知道这是怎么发生的。

另外,不知道这个想法在整个管道方面是否正确,欢迎提出任何建议!

0 投票
1 回答
857 浏览

jenkins - 有没有办法在每个构建历史记录旁边显示 Jenkins 中的升级状态?

在 Jenkins 中,我们可以为每个内部版本号提升内部版本。我想在构建历史框中的每个构建的右侧显示升级状态?否则是否可以在单独的页面中列出所有需要提升的构建?

在此处输入图像描述

0 投票
1 回答
1612 浏览

jenkins - 升级构建后是否支持电子邮件中的 ${CHANGES_SINCE_LAST_SUCCESS}?

我使用 Jenkins (v1.578) 和promoted-build (v2.19) 和mail-ext (v2.38.2) 插件。

我想在促销成功后作为操作发送的电子邮件中使用 ${CHANGES_SINCE_LAST_SUCCESS}。

目前我得到 ${CHANGES_SINCE_LAST_SUCCESS} 的空白值,我怀疑这与promoted-build 插件的工作方式有关(似乎为没有任何变化的促销创建了一个新工作)

是否可以使用指定键甚至使用 groovy 模板从原始构建中检索数据?

编辑:我的最终目标是通知一些人在登台环境中部署了一个新版本,理想情况下,电子邮件应该包含自上次部署以来的所有更改(=自上次成功以来)。

0 投票
1 回答
1194 浏览

maven - 升级的构建插件将工件部署到存储库

我们有一个运行在 Windows slave 上的 Jenkins Maven 构建,它在每次提交时运行 maven 包。我正在尝试使用提升的构建插件将提升的构建部署到 nexus 发布存储库。

我已将“在...时促进构建”设置为手动批准,并且“将工件部署到 Maven 存储库”的操作将存储库 URL 设置为“ http://example.com:8081/nexus/content/repositories/releases / "和repo id 为"release"。但是,当触发批准时,我们会得到以下堆栈跟踪:

[INFO] 部署在http://example.com:8081/nexus/content/repositories/releases/ (id=release,uniqueVersion=true) 部署主工件 artifactid-1.0.2.pom 上传:http://example .com:8081/nexus/content/repositories/releases/groupid/artifactid/1.0.2/artifactid-1.0.2.pom 错误:无法部署工件:无法从/传输工件 groupid:artifactid:pom:1.0.2发布(http://example.com:8081/nexus/content/repositories/releases/):传输文件失败:http ://example.com:8081/nexus/content/repositories/releases/groupid/artifactid/ 1.0.2/artifactid-1.0.2.pom. 返回码为:401,ReasonPhrase:未经授权。org.apache.maven.artifact.deployer.ArtifactDeploymentException:无法部署工件:无法将工件 groupid:artifactid:pom:1.0.2 从/到发布(http://example.com:8081/nexus/content/repositories /releases/ ):传输文件失败:http ://example.com:8081/nexus/content/repositories/releases/groupid/artifactid/1.0.2/artifactid-1.0.2.pom. 返回码为:401,ReasonPhrase:未经授权。在 org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:143) 在 hudson.maven.reporters.MavenArtifactRecord.deploy(MavenArtifactRecord.java:193) 在 hudson.maven.RedeployPublisher.perform(RedeployPublisher.java :176) 在 hudson.plugins.promoted_builds.Promotion$RunnerImpl.build(Promotion.java:282) 在 hudson.plugins.promoted_builds.Promotion$RunnerImpl.doRun(Promotion.java:224) 在 hudson.model.AbstractBuild$AbstractBuildExecution。 run(AbstractBuild.java:533) at hudson.model.Run.execute(Run.java:1740) at hudson.model.Run.run(Run.java:1678) at hudson.plugins.promoted_builds.Promotion.run(Promotion .java:174) 在 hudson.model.ResourceController.execute(ResourceController.java:89) 在 hudson.model。

如果我更改升级操作以触发 Maven 部署,则重新运行构建并且部署目标按预期工作,如果我添加 git 发布者,这也会在身份验证时失败。如果由运行 Jenkins 的用户在本地执行,这两个操作都会成功。

提升的构建插件如何确定部署的身份验证详细信息?

0 投票
1 回答
73 浏览

jenkins - jenkins: promote before job ends

I'm trying to configure a job in jenkins in a way that the promotion process (Promoted builds plugin) happens in the middle of a run. The point is that there are some annoying tasks like javadocs, sonar integration,... that can be run even after the promotion process, therefore I would like to make the build, run all needed tests and then promote the build automatically. Other tasks can run after the promotion process.

Do you know how I can implement this using the Promoted builds plugin?

Thanks in advance for the help.

0 投票
1 回答
120 浏览

jenkins - Jenkins 日常下游工作

在我们的持续集成实现中,我们每隔几分钟构建一个新的 WAR/Jar 文件,并将其部署到 Nexus Snapshot 存储库作为最前沿的候选者。这工作令人满意。

我们还运行许多自动化 QA(findbugs、junit 等)作为下游作业,这些作业运行时间更长,有时还会倒退。只有当没有回归/QA 失败时,我们才想将工件视为发布。

然而,在原始构建上使用下游作业(生成快照并将工件存档在 jenkins 中)我们最终获得了许多版本。

所以我们正在寻找一种将日常工作作为“上游”工作的方法,这样我们就可以使用promoted-builds来每天发布。

下图概述了我们正在尝试做的事情

0 投票
0 回答
73 浏览

jenkins - Jenkins 推广构建和神器

我有以下詹金斯工作流程:

我正在使用构建流程来编排多个作业。

(实际上我还有几个工作,并行化,这就是构建流程特别有用的原因)

现在 Job 3 可能使用了 Job1Build1 和 Job2Build2 的工件

我想在 Job 1 和 Job 2 上安装促销活动。

例如,在 Job3 运行之后,它应该检测到它从 J1B1 和 J2B2 的 Artifactory 中检索了工件,因此对这些构建应用了提升。

是否可以在 Jenkins 中不显式记录指纹的情况下记录此类链接(仅依赖于发布到 Artifactory/从 Artifactory 检索到的工件的指纹)?

0 投票
0 回答
215 浏览

jenkins - Jenkins CI - 促进相应的下游工作

我目前正在使用Promoted Builds Plugin 将工作提升为QA、测试、生产等。这个插件非常适合提升单个工作。但是,我正在寻找一种方法来提升父作业,并让该作业使用相应的构建来促进其余的下游作业。

这是一个例子。假设我有 3 个作业都是从上游作业触发的:

  • 作业 1 - 构建 200 - 父作业在成功构建后启动作业 2
  • Job 2 - Build 400 - Job 2 在成功构建后启动 Job 3
  • Job 3 - Build 300 - Job 3 在 Job 2 成功后构建

完成此操作后,我希望能够提升 job 1 build 200 并让该 job 也提升 job2 build 400 和 job 3 build 300,因为这些是在下游关系中一起构建的工件。

这可以通过实际构建作业并自动提升它们来轻松完成,但我不想构建,因为已经创建了工件。

任何帮助深表感谢!

0 投票
2 回答
767 浏览

jenkins - Jenkins - 将 Artifactory Url 传递给升级的构建插件

tl;博士:

我有一份 Jenkins 工作(工作 #1)。我想使用Promoted Build Plugin(Job #2)调用第二份工作。作业 #2 已参数化,需要作业 #1 生成的人工 URL - 如何将参数从作业 #1 传递到作业 #2?使用批准参数似乎不起作用,因为此参数由环境变量组成。我实际上只是想在 Job #1 中创建一个环境变量,然后将其作为参数传递给 Job #2 - 肯定有办法做到这一点吗?


用例:

我有一个将工件上传到工件的 Jenkins 工作。我正在尝试使用Promoted Build Plugin 来触发将工件URL 作为参数的第二个作业。但是,我似乎找不到任何方法将工件 URL 传递给它 - 在作业本身中,我从 $DEPLOY_URL/$DEPLOY_URL-$BUILD_ID.tar.gz 创建 URL - 但是,当提升脚本运行时,$ BUILD_ID 具有不同的值,因为从技术上讲,提升发生在不同的工作中(据我所知,插件的工作方式是创建一个处理构建提升的小型迷你工作,并且它们有自己的编号)。我尝试将完整的 URL 保存到 shell 脚本中名为 $ARTIFACTORY_URL 的变量中,但同样,促销作业似乎无法访问它。如何将变量从我的 Jenkins 工作传递给提升工作?