I have the need to create a "(Almost) Continuous Delivery" pipeline for a
number of GitHub repositories
that together forms "The App". They should (hopefully, the devs are
currently in the process of refactoring
the code to make this possible) be possible to test, build and deploy
independently.
However, since we don't have enough automated tests, I can't deploy the
software all the way to live
(Feature Flags is also something that's on the TODO for the "somewhat-near"
future).
So I have four environments the software should pass through. It needs to
be successfully deployed
and tested in each of them to proceed to the next stage.
They are: Test (very simple "ping" automated test), Preview (the "full
monty" tests - we're working on that),
Validation (which is currently manual tests by the testers - this will be
decommissioned if/when we have
"The Full Monty" tests running in a few years) and Live.
Now, because "Test" and "Preview" is where all the automated tests happen,
I want this to be automatic.
That is, it should first deploy to Test, configure the software (using
puppet) and run the "ping" test. If that
succeeds, I want it to start deploying to "Preview", configure the software
and run what automated unit
tests we have.
But then the automatic part should stop! I want "simple PLAY button" for it
to be deployed into "Validation"
(and once that's succeeded, another "PLAY" button should appear next to
"Live").
I also have three "Demo" environments (one for "selected customers", for
the sales people and one for
our internal colleagues in the rest of the organisation so they can see
what's happening).
Those three should be "available" (with a PLAY button) at the same time it
starts deploying to "Test".
There's two problems with the current "Delivery Pipeline" plugin and
Jenkins:
1. It's only possible to have _ONE_ manual step
https://issues.jenkins-ci.org/browse/JENKINS-26282
2. I get "circular dependencies" when I try to setup the dependency
between the "Test"
part of the pipeline and "Preview".
I've tried the "Pipeline" plugin, but that don't seem to have a manual step
for me/someone to click on.
To add insult to injury, I also need this to be compact. I could possibly
do this as one, long, flat pipeline,
but that won't show on the big wall monitor/TV we're ordering. I want the
devs to be involved in this, to
make them _see_ what's happening to their commit.
So with the "Delivery Pipeline" module, I grouped my different part of the
stages by setting the "Stage Name"
and "Task Name" in the "Delivery Pipeline configuration" setting.
Looks pretty and exactly what I want. However, that's where I'm getting
the circular dependency.
So at the moment, "Test" and "Preview" launches at the same time, in
parallel.
Is there another plugin that might do what I want to do?
--
You received this message because you are subscribed to the Google Groups
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jenkinsci-users/ff7ac83c-1c4d-4b7b-bd83-82a85eb55d75%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.