continuous integration - Choose approach for external Jenkins orchestration -
i wondering if there solution external jenkins orchestration or not?
let me explain our setup first:
- we have several huge java artifacts needs tested through continuous integration pipeline
ajob configured grab code after commit, run unit tests , build artifact itselfbjobs (there 4 of them now) run different set of smoke tests in parallel using empty databases. triggered only afterajob succeeded. jobs use external resources: cloud nodes (to artifact deployed) , databases db pool. jobs can return 3 statuses in jenkins:- green: cloud node obtained successfully, artifact deployed, tests passed
- yellow: there no infrastructure failures detected (or all) tests failed --> blame developers/qa here
- red: there 1 one more infrastructure failure: cloud messed up, database unavailable, artifact deployment failed. --> blame devops here
cjob: run only if ofbjobs green. otherwise end of flow. uploading artifact nexusdjobs: run functional tests: several jobs here reuse cloud nodesbjobs save time deployment. don't care status get: green, yellow or red. record results , that's it. however, there 2 jobs here deploy original artifactajob in clustered configuration , if deployment succeededejob start independently (i.e. ifd1job fail,e1shouldn't start ifd2job succeeded in same workflow,e2should triggered).
when workflow finished, need determine status: if there fatal error (any red build) workflow must have failed status.
after workflow if finished, resources must freed up: cloud nodes , databases.
which workflow/process flow tool or library can utilize implement such logic?
we have several other pipelines different flows should flexible.
current implementation have complicated logic , several technical jobs take care of shared resources. want implement logic in single place: orchestrator triggering jenkins jobs externally, feeding them parameters run.
checkout rundeck plugin jenkins.
rundeck ssh based orchestration tool.
Comments
Post a Comment