I work for a software company where Java is the primary development language. Naturally, we use Hudson for continuous builds, for which it works great. However, Hudson is not so good at some of the other things we ask. We also use Hudson jobs to deploy binary files, update databases, load tests, perform regressions, etc. We really run into problems with build dependencies (for example, a database update is required to test the load).
Here is one thing that Hudson does not do, what we really need:
Explain the dependency: it supports assembly dependency for Ant assemblies, but not for Hudson's jobs. We use the url call function to make Hudson's work invoke another Hudson's work. The problem is that Hudson always returns 200 and is not blocked until the job is done. This means that the calling task does not know a) if the assembly failed and b) if it did not fail, how long it took.
It would be nice not to use shell scripts to indicate assembly behavior, but this is not entirely necessary.
Any direction would be nice. Perhaps we are not using Hudson in the right way (i.e. should Ant builds be built?) Or maybe we need another product for our one-click deployment, load testing, migration, database updates, etc.
Edit:
To clarify, we have parameters in our assemblies that can cause different dependencies depending on the parameters. That is, sometimes we want to download testing with updating the database, sometimes without updating the database. Unfortunately, creating a Hudson task for each combination of parameters (as the Join plugin requires) will not work, because sometimes different combinations can lead to dozens of tasks.
source
share