A Tale of Two Subsystems




  • Avatar
    Marcus Vinicius Ferreira

    Hi. Can you fix the image on this article?

  • Avatar
    Shawn Pustelnik

    I have a scenario similar to #3, except that upon approval, the job will deploy the next morning at 2am. is there a way to do this easily? I

  • Avatar
    Jyoti Singh

    Hi Shawn,

    The setup for scenario3 would look something similar to this:


    For the scenario you mentioned, the above setup could be changed to something like this:


    Here,  an intermediate pipeline "ApproveDeploymentToProduction" is introduced, which is a setup to be triggered manually. "DeploymentToProduction" is a manual pipeline setup to trigger based on a timer. This pipeline depends on "ApproveDeploymentToProduction". While configuring timer settings, make sure you select "Run only on new material".  The important thing to note is DeploymentToProduction should not have any *pipeline* materials defined as dependency, apart from ApproveDeploymentToProduction. SCM materials can remain, but they need to be blacklisted. If you have any pipeline material defined for DeploymentToProduction, make them the material for ApproveDeploymentToProduction instead. Fetch artifacts works fine for ancestor artifacts as well.

    With this setup, you could trigger ApproveDeploymentToProduction whenever you find suitable and let it go green. When the timer goes off next, it will trigger DeploymentToProduction. If you are not ready to approve the deployment to production yet, just do not trigger this pipeline. If not new builds of upstream is available, Go would not schedule the deployment pipeline when timer goes off. 

    Hope that helps.


    PS: The Go community pages have moved to mailing lists. You can find the links here: http://www.go.cd/community. There are more people there, to help.

Please sign in to leave a comment.