Closed mjallday closed 10 years ago
Ideally I would like to be able to configure these dependencies independently of the actual jobs themselves. e.g. create a databag that has something like a hash that specifies the job name and then it's immediate downstream dependencies (which can be run in parallel), nesting lists would allow specifying conditional jobs :
{
"balanced": [
"balanced-deploy-staging", "balanced-pylint"
],
"balanced-deploy-staging": {
"acceptance": [
"balanced-build"
]
},
"balanced-build": [
"balanced-deploy-test"
]
}
If this looks horrible please submit a better idea!
Looks fine to me - though something in my brain is telling me that there might be a better way to do this that's already done somewhere else.
This problem can be isomorphically mapped to: "How do you define relations between entries in a dictionary?"
So the big problem with doing this that I tried to pull this stuff out of the XML and it turned into a mess of reimplementing chunks of the Jenkins API in Ruby to make it composable. I can make it work, but its going to be a bunch of possibly fragile code :-/ I would also do it as a resource, not a bag, because bags are evil :-)
Closing since we have pretty much resolved this.
E.g How would I configure:
balanced unit tests -> balanced-deploy-staging -> acceptance tests -> balanced-build -> balanced-notify-deploy-ok