why a developer writes


| Comments

本文内容部分来源于Andrew Bayer发布在SlideShare上的 7 habits of highly productive Jenkins Users (2014 Edition).

习惯 2: 大而化小

1. 使用多个Masters

在存在多个project与team的情况下,多个master可以使jenkins jobs的管理更加敏捷和可控

建议根据team, function, access(访问权限) 来划分master


提高系统的稳定性:多个master, 每个master上分配较少数量的jobs,可以使整个系统更为稳定,减少遇到边界情况bug的几率

2. 分解jobs


多job的Build可以方便地在不同的project, release等等中重用


3. 利用工具帮助分解jobs

混合使用Parameterized trigger, Conditional Build Step, Copy Artifact, Promoted Builds:有效,但是配置困难

Build Pipeline plugin:可以把workflow可视化,集成手工步骤

Workflow plugin: 用DSL定义build steps之间的关系


有关Job分解的Jenkins Plugins

Build Pipeline Plugin

This plugin provides a Build Pipeline View of upstream and downstream connected jobs that typically form a build pipeline. In addition, it offers the ability to define manual triggers for jobs that require intervention prior to execution, e.g. an approval process outside of Jenkins.

Workflow plugin

Building continuous delivery pipelines and similarly complex tasks in Jenkins using freestyle projects and traditional plugins can be awkward. You need to mix Parameterized Trigger, Copy Artifact, Promoted Builds, Conditional Build Step, and more just to express what should be a simple script. The Workflow plugin suite attempts to make it possible to directly write that script, what people often call a workflow (sometimes abbreviated flow), while integrating with Jenkins features like slaves and publishers.

Parameterized Trigger plugin

This plugin lets you trigger new builds when your build has completed, with various ways of specifying parameters for the new build. You can add multiple configurations: each has a list of projects to trigger, a condition for when to trigger them (based on the result of the current build), and a parameters section.

Conditional Build Step plugin

A buildstep wrapping any number of other buildsteps, controlling their execution based on a defined condition.

Copy Artifact plugin

Adds a build step to copy artifacts from another project. The plugin lets you specify which build to copy artifacts from (e.g. the last successful/stable build, by build number, or by a build parameter). You can also control the copying process by filtering the files being copied, specifying a destination directory within the target project, etc. Click the help icon on each field to learn the details, such as selecting Maven or multiconfiguration projects or using build parameters. You can also copy from the workspace of the latest completed build of the source project, instead of its artifacts. All artifacts copied are automatically fingerprinted for you.

This plugin allows you to distinguish good builds from bad builds by introducing the notion of ‘promotion’.Put simply, a promoted build is a successful build that passed additional criteria (such as more comprehensive tests that are set up as downstream jobs.) The typical situation in which you use promotion is where you have multiple ‘test’ jobs hooked up as downstream jobs of a ‘build’ job. You’ll then configure the build job so that the build gets promoted when all the test jobs passed successfully. This allows you to keep the build job run fast (so that developers get faster feedback when a build fails), and you can still distinguish builds that are good from builds that compiled but had runtime problems.