GithubHelp home page GithubHelp logo

pipeline-milestone-step-plugin's Introduction

Pipeline Milestone Step Plugin

Provides the milestone step in Pipeline scripts.

By default, Pipeline builds can run concurrently. The milestone step ensures an older build will not override a newer build, so the older build will never be allowed to pass a milestone (it is aborted) if a newer build already passed it.

This step is specially useful in Continuous Delivery pipelines, where builds ordering is very important as the order defines what is going to be delivered, so it provides a control point that aborts any build trying to deliver an old commit when a newer one is already being delivered.

In general this step grants:

  • Builds pass milestones in order (taking the build number as sorter field).
  • Older builds will not proceed (they are aborted) if a newer one already passed the milestone.
  • When a build passes a milestone, any older build that passed the previous milestone but not this one is aborted (see TIP 2 below).

There are two optional parameters:

  • ordinal: sequential number which makes milestones comparable. For any given two consecutive milestones, ordinal for the second milestone must be a greater integer than the ordinal for the first one. If not specified an auto-incremented ordinal is internally generated.
  • label: just for displaying purposes in Pipeline visual representations (provided by other plugins).

This examples are both valid:

milestone 1
... pipeline code here

milestone 2
... more pipeline code

milestone 3
... and more

milestone 100
... pipeline code here

milestone 200
... more pipeline code

milestone 300
... and more

TIP 1: A combination of this step and the lock step can be used to configure a reliable Continuous Delivery pipeline as both delivering latest code status and unique deployments are granted. There is an example of this pattern in the Pipeline CD demo Jenkinsfile.

TIP 2: retroactive builds abort, which is older builds being cancelled once a newer one passes a milestone that the older builds has not passed yet. For example, given this script:

milestone 1
input message: 'Continue?'
milestone 2

If three builds (#1, #2 and #3) start concurrently they are all going to stop on input step waiting for user interaction. If the user allows build #3 to proceed (so it passes milestone 2) then builds #2 and #1 will be automatically cancelled.

pipeline-milestone-step-plugin's People

Contributors

abayer avatar adelcast avatar amuniz avatar basil avatar batmat avatar car-roll avatar danielcompton avatar dcendents avatar dependabot[bot] avatar dmitrii avatar donhui avatar gounthar avatar jetersen avatar jglick avatar kwhetstone avatar mkobit avatar sghill-rewrite avatar svanoort avatar timja avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.