当前位置: 首页 > 面试题库 >

Jenkins-一个发行版有多少CI / CD管道?

盛承
2023-03-14
问题内容

对于任何发行版,请使用下面的Git工作流程,

在此处输入图片说明

对于连续交付,我的理解是,需要创建两条Jenkins管道,如下所示:

1)构建管道,该管道在每个 功能 分支(绿色)合并到 Develop
分支(紫色)时触发。管道将推送product-x.y-snapshot.jarNexus存储库。此罐子的目的是进行质量检查

2)发布管道在每个新的 Release 分支合并到 Master
分支时触发。管道将推送product-x.y.jarNexus存储库。该罐子直接投入生产。

这两个管道均具有针对每个功能的自动测试。在两个管道中运行相同数量的自动测试

1)是否有两个管道足以稳定释放?product-x.y.jar 在该版本中添加了新功能

2)如果是,构建和发布管道必须如何维护二进制工件?使用Nexus …请提供任何参考


问题答案:

1)这个问题并没有一个正确的答案-在大多数情况下,两条管线(一个 功能 分支和其他的
分支)足以创造稳定的版本,但通常团队用三年分期环境(例如,详见技术这文章):

  • 开发 环境:用于 开发 (或 功能 )分支并运行自动化测试;
  • 质量检查 环境:提供更稳定的代码版本以供质量检查小组进行测试;
  • 产品 环境:用于构建当前在 master 分支上的可投入生产的代码

在那种情况下,对于每个登台环境,您可以具有三个管道(或者一个具有用于选择和构建每种类型的环境的参数的管道)。互联网上有很多詹金斯连续交付配置的示例。

2)如果我对您的理解正确,则可以使用Nexus平台插件(请参见本示例)或Nexus
Artifact Uploader来维护工件,以将特定的工件从Jenkins发布到Nexus。



 类似资料:
  • AEM多模块项目具有。我们可以在那个级别更改版本,新的构建将显示具有更新版本的工件。 对于版本,将为每个版本创建一个新的AEM包。我们希望在安装新版本之前卸载/删除旧包。 问题是,如何在CI-CD作业中处理旧软件包的卸载/删除部分(要安装的新软件包版本不同)?我们可以考虑以下解决方案 查询软件包列表以获取版本并使用该版本卸载。 在"用参数构建"中将版本作为参数传递给Jenkins作业。但是代码签入

  • GitLab CI(持续集成)服务是GitLab的一部分,每当开发人员将代码推送到应用程序时,它都会构建和测试软件。 GitLab CD(连续部署)是一项软件服务,它将生产中的每一个代码的变化放在每天生产的部署中。 以下几点描述了GitLab CI/CD的用法: 它很容易学习,使用和扩展。 这是更快的系统,可用于代码部署和开发。 它可以通过设置您自己的runner(它是一个处理构建的应用程序)以及

  • 我必须跳过一些基于git提交消息的jenkins构建。所以我搜索并找到了这个jenkins插件。但是我无法在多分支管道作业中配置启用ci-skip。此选项在多分支管线设置中不可用。 有没有办法在多分支jenkins管道中配置这个[ci skip]? 它在jenkinsfile中可用吗?或者是否可以防止jenkins基于jenkinsfile中的提交消息构建?

  • 下表显示了GitLab CI / CD变量的列表。 编号 变量 GitLab Runner 描述 1 CI all 0.4 指定作业在CI环境中完成。 2 CI_COMMIT_REF_NAME 9.0 all 为项目构建定义分支或标记名称。 3 CI_COMMIT_REF_SLUG 9.0 all 它使用小写的变量,它减少到63个字节,只有和被替换为 。 4 CI_COMMIT_SHA 9.0 a

  • 升级到Gradle 7后,该项目在Android Studio的本地PC上成功构建,但未在Gitlab管道中构建。 Gradle7.0.2需要Java11。 Gitlab管道中的错误消息为 评估项目“:app”时出现问题。未能应用插件的com。Android内部的应用程序'。Android Gradle插件需要Java 11才能运行。您当前正在使用Java1.8。您可以尝试以下一些选项:-更改ID

  • 我正在测试Jenkins CI/CD方法。有一个git回购协议,它有一个主分支、一个QA分支和一个开发分支。还有许多单独的开发人员和功能分支被合并到开发人员中。开发人员分支被合并到qa,qa被合并到master。 我有一个使用gitlab-plugin的jenkins环境,其中有一个包含多分支管道的文件夹,该管道在任何提交上都运行开发人员/功能分支中的jenkinfile。它忽略了master、d