balanced-cookbooks / balanced-ci

Internal configuration for the Jekins CI environment
4 stars 1 forks source link

How/where to configure downstream dependencies #2

Closed mjallday closed 10 years ago

mjallday commented 10 years ago

E.g How would I configure:

balanced unit tests -> balanced-deploy-staging -> acceptance tests -> balanced-build -> balanced-notify-deploy-ok

mjallday commented 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!

mahmoudimus commented 10 years ago

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?"

coderanger commented 10 years ago

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 :-)

mjallday commented 10 years ago

Closing since we have pretty much resolved this.