必威国际有限公司
  • 提供什么? 必威国际有限公司詹金斯X Tekton 大三角帆
  • 博客
  • 用户指南 ——安装詹金斯必威国际有限公司 - 必威国际有限公司- - - - -詹金斯管道 ——管理詹金斯必威国际有限公司 ——确保詹金斯必威国际有限公司 - - -系统管理 -术语和定义 解决方案的页面 2018必威体育下载 ——导游 2018必威体育下载 开发人员指南 贡献者指南
  • 插件
  • 概述 满足 2020刀塔必威赛事 问题跟踪器 路线图 特殊利益集团 -宣传和外展 ——中国本地化 ——原生云 ——文档 谷歌代码之夏 365必威 ——管道创作 ——平台 ——用户体验
  • 概述 常绿 谷歌詹金斯的代码之夏必威国际有限公司 基础设施 CI/CD和Jenk必威国际有限公司ins区域聚会 必威国际有限公司Jenkins配置代码 必威国际有限公司詹金斯运营商 必威国际有限公司詹金斯远程 记录下詹金斯和库伯必威国际有限公司内特的关系
  • 路线图 安全 新闻 奖 行为 艺术作品
  • 中中国文
  • 下载

推特

发表于2018-10-16奥列格Nenashev
  • 工具
  • 码头工人
  • 必威国际有限公司jenkins-x
  • 原生云

我想介绍一下自定义战争包装机为Jenkins管理员和开发人员提必威国际有限公司供的新工具。该工具允许将自定义Jenkins发行版打包为WAR文件,必威国际有限公司码头工人的图片和必威国际有限公司Jenkinsfile跑步包。这个工具允许将Jenkins、插件和配置打包到一个随时必威国际有限公司可用的发行版中。自定义WAR包装器是Ephemeral Jenkins控制器工具链的一部分必威国际有限公司云原生Jenkins必威国际有限公司篇博文这个工具链已经在必威国际有限公司詹金斯X打包serverless图片.

在这篇博文中,我将展示一些自定义WAR打包程序的常用用例。

历史

与Jenkins必威国际有限公司本身一样,Custom WAR Packager开始时也是一个小型开发工具。很长一段时间以来,在Jenkins中运行集成测试都是个问题。必威国际有限公司我们有3个主要框架:必威国际有限公司詹金斯测试工具,验收测试工具,插件的兼容性测试.所有这些框架都需要传递一个Jenkins WAR文件来运行测试必威国际有限公司。如果您想在AWS这样的自定义环境中运行Jenki必威国际有限公司ns测试,该怎么办?或者,如果您想重用现有的Jenkins Pipeline测试并针对它们运行该必威国际有限公司怎么办可插拔存储确保没有倒退?

这不仅仅是一个无聊的问题。Jenkins项目中有一些主要的活动:云原生Jenkins、Jenkins Evergre必威国际有限公司en和Jenkins x。所有这些活动都需要大量的集成测试来实现持续交付流。为了在现有的测试框架中做到这一点,我们需要打包一个自配置的WAR文件,这样就可以在现有的框架中运行集成测试。这就是为什么Custom WAR Packager是在2018年4月创建的。后来,它获得了对Docker图像打包的支持,并在2018年9月获得了对Jenkinsfile Runner的支持,这是由必威国际有限公司Kohsuke川口然后改进为尼古拉斯·德转舵.

里面有什么?

自定义WAR包是一种工具,可以作为CLI可执行文件、Maven插件或Docker包使用。该工具接受输入定义,并根据用户的要求将它们打包。一切都由一个YAML配置文件管理:

自定义WAR打包器构建流">
        </div>
       </div>
       <div class=

该工具支持各种类型的输入。插件列表可以通过YAML本身传递,pom.xml的BOM文件中- 309.Custom WAR Packager不仅支持发布版本,还支持部署到增量存储库(CD流的Jenkins核必威国际有限公司心和插件-中- 305),甚至通过Git或目录路径规范直接构建。它允许从任何来源构建包,而无需等待正式发布。构建也非常快,因为插件通过使用提交id在本地Maven存储库中进行缓存。

自定义WAR包还支持以下自配置选项:

  • YAML文件必威国际有限公司Jenkins配置代码

  • Groovy钩子(例如,用于预配置的init钩子)

  • 系统属性

战争的包装

在每次构建回购时都会默认地进行WAR打包。通常,Custom WAR Packager按照Jenkins核心和JCasC插件中定义的约定将所有输入重新打包到单个WAR文件中。必威国际有限公司

示例配置:

包:groupId:"io.必威国际有限公司jenkins.tools.war-packager.demo"artifactId:"blogpost-demo"供应商:"必威国际有限公司詹金斯项目"描述:"只是这篇博文的一个演示"战争:groupId:"org.必威国际有限公司jenkins-ci.main"artifactId:"必威国际有限公司jenkins-war"源:版本:2.138.2插件: -groupId:“io.j必威国际有限公司enkins”artifactId:"configuration-as-code"源:#共同发布版本:1.0 rc2-groupId:“io.j必威国际有限公司enkins”artifactId:"artifact-manager-s3"源:#渐进映像版本:1.2 -rc259.c9d60bf2f88c-groupId:“org.j必威国际有限公司enkins-ci.plugins.workflow”artifactId:"工作流操作的"源:# Gitgit:https://github.com/jglick/workflow-job-plugin.git提交:18 d78f305a4526af9cdf3a7b68eb9caf97c7cfbc#等。systemProperties:必威国际有限公司jenkins.model.Jenkins.slaveAgentPort:"9000"必威国际有限公司jenkins.model.Jenkins.slaveAgentPortEnforce:"真正的"groovyHooks: -类型:“init”id:"启动脚本"源:dir:src / main / groovy李宁公司: -id:“jcasc”源:dir:casc.yml

码头工人包装

为了进行Docker的打包,Custom WAR Packager使用官方的必威国际有限公司詹金斯/詹金斯Docker图像或其他使用相同格式的图像。在构建过程中,WAR文件只是被工具构建的文件所替换。这意味着所有图像功能可用于这样的自定义构建:plugins.txt, Java选项,Groovy钩子,等等。

# #……## WAR配置# #……buildSettings:码头工人:构建:真正的#基础镜像基地:"必威国际有限公司詹金斯/ jenkins: 2.138.2"要为生成的图像设置的标签标签:"必威国际有限公司詹金斯/ custom-war-packager-casc-demo"

例如,这个演示展示了将Docker映像与外部构建日志记录到Elasticsearch的打包。虽然实现已经作为中- 207和中- 210,您可以查看这个演示,看看Docker映像如何进行自我配置,连接到Elasicsearch,然后开始在不改变构建日志ui的情况下外部存储日志。包括一个Docker Compose文件,用于运行整个集群。

必威国际有限公司Jenkinsfile跑步包装

这可能是Jenkinsfile Runner中最棘手的模式。必威国际有限公司三月,一个新的必威国际有限公司Jenkinsfile跑步项目宣布在开发人员邮件列表中。其主要思想是,当实例只执行一次运行并将输出打印到控制台时,支持在单次控制必威国际有限公司器模式下运行Jenkins Pipeline。必威国际有限公司Jenkinsfile Runner以CLI或Docker映像的形式运行。自定义WAR Packager可以同时生成这两种模式,但只推荐使用Docker运行模式。使用Jen必威国际有限公司kinsfile Runner,你可以像…

docker run——rm -v $PWD/J必威国际有限公司enkinsfile:/workspace/Jenkinsfile acmeorg/ Jenkinsfile -runner . log . log . log . log

当我们开始在Cloud Native SIG中开发Ephemeral(又名“single-shot”)控制器时,我们想到了使用Custom WAR Packager和其他现有工具(Jenkinsfile Runner, Jenkins Configuration as Code等)来实现它。必威国际有限公司可以只替换Jenkins核心JAR,并向Jenkinsfile Runne必威国际有限公司r添加插件,但这还不够。为了提高效率,应该启动Jenkin必威国际有限公司sfile Runner映像快,真的很快。在构建流程实现中,我们使用了Jenkins和Jenkinsfile Runner中可用的一些实验性选项,包括类加载器预编译、插件解归档等。必威国际有限公司有了这样的补丁,Jenkins在几秒必威国际有限公司钟内就启动了配置即代码和几十个绑定的插件。

那么,如何构建自定义Jenkinsfile Ru必威国际有限公司nner映像呢?虽然到目前为止还没有释放,但正如你上面看到的那样,这并不是可以阻止我们的东西。

# #……##从上面的WAR配置# #……buildSettings:必威国际有限公司jenkinsfileRunner:源:groupId:"io.必威国际有限公司jenkins"artifactId:"必威国际有限公司jenkinsfile-runner"构建:noCache:真正的源:git:https://github.com/必威国际有限公司jenkinsci/jenkinsfile-runner.git提交:8 ff9b1e9a097e629c5fbffca9a3d69750097ecc4码头工人:基地:"必威国际有限公司詹金斯/ jenkins: 2.138.2"标签:"onenashev / cw必威国际有限公司p-jenkinsfile-runner-demo"构建:真正的

你可以找到一个带有自定义WAR Package必威国际有限公司r的Jenkinsfile Runner包的演示在这里.

更多信息

还有许多其他的功能没有在这篇博文中描述。例如,可以修改Maven构建设置或在Jenkins核心中添加/替换库(例如Remoting)。必威国际有限公司请参见自定义WAR Packager文档为更多的信息。在存储库中有许多可用的演示。

如果您对存储库感兴趣,请创建pull请求和CC@oleg-nenashev和劳尔Arabaolaza他是现在从事Jenkins测试自动化流程的第二个维护人员。必威国际有限公司

接下来是什么?

该工具仍有许多改进,以使其更有效:

  • 添加可传递插件依赖项的上限检查,以便在构建过程中发现冲突

  • 允许通过配置YAML传递所有类型的系统属性和Java选项

  • 改进Jenkin必威国际有限公司sfile Runner以提高性能

  • 将工具集成到Jenkins Integratio必威国际有限公司n测试流中(参见essentialsTest ()在Jenkin必威国际有限公司s Pipeline库中)

许多其他任务可以在Custom WAR Packager中实现,但即使是现在,所有Jenkins用户都可以使用它来构建自己的Jenkins包。必威国际有限公司

想知道更多吗?

如果你愿意的话DevOps世界-尼斯的Jen必威国际有限公司kins世界10月22-25日,我将在午餐演示期间在社区展位上展示Custom WAR Packager。我们也会重复我们的云原生Jenkins必威国际有限公司与卡洛斯·桑切斯一起讨论,我们将展示如何Ephemeral Jenkins与可插拔存储工作。必威国际有限公司必威国际有限公司Jenkins X团队也将使用自定义WAR包装器展示他们的项目。

来满足奥列格和其他云本地SIG成员在DevOps世界- Jenki必威国际有限公司ns世界10月22日至25日在尼斯。用代码注册JWFOSS您的通行证可以打七折。

关于作者
奥列格Nenashev"class= 奥列格Nenashev

必威国际有限公司詹金斯核心维护者和董事会成员。Oleg在2008年开始在硬件/嵌入式项目中使用Hudson,并在2012年成为Jenkins的活跃贡献者。必威国际有限公司现在他领导着几个詹金斯必威国际有限公司团体、外展计划(谷歌代码之夏,Hacktoberfest),必威国际有限公司詹金斯聚会在瑞士和俄罗斯。奥列格工作CloudBees并专注于社区的关键项目。

  • GitHub
  • 推特
  • 博客
  • LinkedIn

betway必威足彩|

知识共享署名-相似共享许可"src=

驱动本网站的内容是在知识共享署名-共享相似4.0许可下许可的。

资源
  • 下载
  • 博客
  • 文档
  • 插件
  • 安全
  • 贡献
项目
  • 结构和治理
  • 问题跟踪器
  • 路线图
  • GitHub
  • 必威国际有限公司詹金斯在詹金斯
社区
  • 2020刀塔必威赛事
  • 邮件列表
  • 聊天
  • 特殊利益集团
  • 推特
  • Reddit
其他
  • 的行为准则
  • 新闻信息
  • 商品
  • 艺术作品
  • 奖