Strider-CD / strider

Open Source Continuous Integration & Deployment Server
http://strider-cd.github.io/
4.6k stars 431 forks source link

How can I actually control the order of actions during a phase? #791

Open oliversalzburg opened 9 years ago

oliversalzburg commented 9 years ago

I want to run gulp before I run my tests. My first idea was to simply run a script during the prepare phase. But that script is run before bower and node dependencies are restored, so I'm missing those.

I could just run my script in the test phase, but that doesn't seem like the right place.

I assumed that I could control this behavior by re-ordering the plugins for the branch, but that has no effect on the order of these actions.

I can see how some people would like to run a certain action before cached modules are restored and how others would like to do that after they're restored. So, is there a way?

oliversalzburg commented 9 years ago

And I think I just got my answer.

When you're using strider.json to control your strider config, the plugins you configure in there are pushed to the top of the plugin stack, so they always run first.

oliversalzburg commented 9 years ago

And I just got a tiny bit smarter :P Not using merge_plugins in strider.json will obviously, not merge the configurations.

So you just have to configure all plugins in strider.json and then only the order in strider.json matters.

Now, what is actually the desired behavior here? Should people override their web config with strider.json? Should one extend the other? If so, which one's the root?

I also wrote some code at https://github.com/oliversalzburg/strider/commit/b2a9f5d3dc6bee39c14185163952490d0e72d458, but I'm no longer sure what the correct approach is. Please advise.

Relates to #789