Giter VIP home page Giter VIP logo

pipeline-plugin's Introduction

Introduction

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 Pipeline plugin (formerly known as Workflow) suite attempts to make it possible to directly write that script, what people often call a pipeline, while integrating with Jenkins features like slaves and publishers.

Features

Scripted control flow

Your whole pipeline is a single Groovy script using an embedded DSL, possibly quite short and legible; there is no need to jump between multiple job configuration screens to see what is going on. Conditions, loops, variables, parallel tasks, and so on are defined using regular language constructs. At any point you can insert a shell/batch script to do “real work” (compilation, etc.).

Useful steps

Standard DSL functions (“steps”) let you run external processes, grab slave nodes and workspaces, perform SCM checkouts, build other projects (pipeline or freestyle), wait for external conditions, and so on. Plugins can add further steps.

Pause and resume execution

If Jenkins is restarted (intentionally, or because of a crash) while your Pipeline is running, when it comes back up, execution is resumed where it left off. This applies to external processes (shell scripts) so long as the slave can be reattached, and losing the slave connection temporarily is not fatal either.

Pipelines can pause in the middle and wait for a human to approve something, or enter some information. Executors need not be consumed while the Pipeline is waiting.

Pipeline stages

Pipelines can be divided into sequential stages, not only for labeling but to throttle concurrency.

Getting started

Read the tutorial to get started writing pipelines.

There is also a DZone Refcard.

A new collection of examples, snippets, tips, and tricks is in progress.

Installation

Releases are available on the Jenkins update center. You need to be running a sufficiently recent Jenkins release: an LTS in the 1.580.x line or newer (currently 1.609.x for the latest updates), or a weekly release.

For OSS Jenkins users, install Pipeline (its dependencies will be pulled in automatically). You will need to restart Jenkins to complete installation.

CloudBees Jenkins Enterprise users get Pipeline automatically as of the 14.11 (1.580.1.1) release. Otherwise install CloudBees Pipeline from the update center. Again dependencies will be pulled in automatically, including all the OSS plugins.

For multibranch pipelines and organization folders, install Pipeline: Multibranch (includes as of Pipeline 2.0) plus at least one SCM provider, such as GitHub Branch Source.

News & questions

Demo

See the demo overview using Docker if you want to try a complete setup quickly. In short:

docker run -p 8080:8080 -p 8081:8081 -p 8022:22 -ti jenkinsci/workflow-demo

and browse localhost:8080.

Presentations

Webinar Continuous Delivery as Code with Jenkins Workflow (Sep 2015): slides and video (demo starts at 20:30)

Jenkins Workflow: What’s Up? (JUC West) (Sep 2015): slides and video

Jenkins Office Hour on Workflow for plugin developers (Aug 2015): video

Workflow Meetup London (Mar 2015): slides

Jenkins Workflow Screencast (Jan 2015): video

Webinar Orchestrating the Continuous Delivery Process in Jenkins with Workflow (Dec 2014): video

Development

See the contribution guide.

pipeline-plugin's People

Contributors

jglick avatar kohsuke avatar tfennelly avatar amuniz avatar abayer avatar recena avatar jtnord avatar estheryouhana avatar oleg-nenashev avatar rpocase avatar kzantow avatar vivek avatar kwhetstone avatar rodrigc avatar batmat avatar apemberton avatar gregsymons avatar rsandell avatar varmenise avatar vlatombe avatar ndeloof avatar martinda avatar christ66 avatar rodrigozrusso avatar mgaunin-cloudbees avatar michaelneale avatar jan-molak avatar bss avatar kmadel avatar szpak avatar

Watchers

Árni Hermann Reynisson 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.