我想介绍一下自定义战争包装机为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测试并针对它们运行该必威国际有限公司怎么办可插拔存储确保没有倒退?
自定义WAR包是一种工具,可以作为CLI可执行文件、Maven插件或Docker包使用。该工具接受输入定义,并根据用户的要求将它们打包。一切都由一个YAML配置文件管理:
该工具支持各种类型的输入。插件列表可以通过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"
这可能是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日在尼斯。用代码注册 |