This folder contains example pipelines.  There are three types:


  1. Pipelines that run "real" jobs locally.

     They contain jobs that run scripts located inside the "scripts" folder.

     These pipelines are meant to be run with the LocalScriptManager script
     manager, like this:

         $ python pipeforge run mongodb://localhost:27017/pipelines__test pipeforge/examples/<name_of_pipeline>.toml LocalScriptManager

     The scripts these jobs run are special ones that simulate different
     scenarios: always succeeds, fails X times before succeeding, takes longer
     to run the first Y times, etc...

     In this group we find these examples:

         hello_world.toml      : Simple pipeline where some jobs run in
                                 paralell.

         retries.toml          : Simple linear pipeline where one jobs fails
                                 twice before succeeding.

         timeout.toml          : Simple linear pipeline where one jobs times out
                                 the first time it runs.

         multi_pipeline.toml   : The pipeline fails, but it is configured to
                                 trigger a second pipeline when that happens.

         multi_pipeline_2.toml : Same as multi_pipeline.toml, but the second
                                 pipeline is a filtered version of the original
                                 one.

      Each of them takes less than ~30 seconds to run.


  2. Pipelines that run "real" jobs remotely.

     They contain jobs that are meant to run on a remote Jenkins server using
     the JenkinsScriptManager script manager (read the documentation of the
     JenkinsScriptManager class for more details on how to configure Jenkins to
     make this possible).

     In this group we find these examples:

         hellow_jenkins.toml : Extremely simple pipeline that runs one single
                               job on a remote Jenkins instance.


  3. Pipelines that run "simulated" jobs.

     They contain jobs that run scripts which do not exist on this repo, that's
     why these pipelines run on the DummyScriptManager script manager, like
     this:

         $ python pipeforge run mongodb://localhost:27017/pipelines__test pipeforge/examples/<name_of_pipeline>.toml DummyScriptManager

     The DummyScriptManager script manager will pretend to be running the script
     that each job provides when in reality it is just sleeping for a few
     seconds.  This makes it possible to very quickly simulate pipelines that
     otherwise (ie. in the real scenatio) would take a lot of time to finish.

     In this group we find these examples:

         merge_pull_request.toml : A complex pipeline for merging pull requests.
                                   It needs the following env variables to be
                                   exported before running (you can set them
                                   to random values):

                                       $ export PIPEFORGE__TARGET_BRANCH=origin/master
                                       $ export PIPEFORGE__FEATURE_BRANCH=origin/my_new_feature

