How to *always* trigger on successful build?
I have a setup that looks something like this:
DeployToStaging has a snapshot dependency on TestSuiteA and TestSuiteB
DeployToStaging has the VCS trigger.
TestSuiteA runs quite quickly (10-15 mins), while TestSuiteB runs rather slowly (about 1 hr).
So what happens is that we get a number of changes piled up waiting for TestSuiteB to finish. When TestSuiteB finishes successfully, DeployToStaging is not executed, instead TestSuiteB starts up again with the queued changes. Not until there are no queued changes does DeployToStaging finally execute - realistically this means we don't get a deploy until the end of the work day.
What I'd like to have happen is that every time TestSuiteB finishes sucessfully, DeployToStaging gets triggered regardless of whether there are queued changes or not.
I can't see anyway to do this, but I'm hoping I'm just missing something.
Ideas?
Darrell
Please sign in to leave a comment.
Try to add dependency trigger from TestSuiteB to DeployToStaging, i.e. navigate to DeployToStaging Build Triggers -> Dependency tab and select TestSuiteB. When TestSuiteB finishes successfully DeployToStaging will be invoked.
No, that's not the issue -- the dependency already exists. The problem is that DeployToStaging won't actually run until there are no pending changes in TestSuiteB. I want it to kick off after *every* successful build, whether there are pending changes or not.
I suppose I could put in some sort of artifact based trigger on a file gets written out on completion of TestSuiteB, but that seems entirely too hackish.
Do you really need snapshot dependency from DeployToStaging on TestSuiteB?
I assume so, if I want DeployToStaging to deploy the same commit that was built by TestSuiteB. True?
It depends. If DeployToStaging is only doing a deployment and does not share source code with TestSuiteB and you want DeployToStaging to execute after every successful build of TestSuiteB then probably you do not need snapshot dependency in this case.
In this case, the source code *is* the application (it's Ruby on Rails), so getting the exact commit of the successful test run is critical.
Darrell, can you provide screenshots of the Settings tabs of all of the mentioned build configurations? Also please indicate what version of TeamCity you are using.
Selenium testing (aka TestSuiteB)
And webrat (aka TestSuiteA)
I have the same problem and this is a big showstopper for me. Is there any solution? On busy days my "parent" build configuration never runs. Because vcs checkins between the initial trigger and the dependend configuration builds force to rerun this dependend builds over and over again, without trigger the parent one.
Please take a look at this issue: http://youtrack.jetbrains.net/issue/TW-8750
Is this your case?