huserben / TfsExtensions

Extensions for TFS 2015+ such as custom Widgets (require TFS 2017) and Build Tasks
MIT License
45 stars 22 forks source link

Add new Task: Wait for triggered build to complete #22

Closed henning-krause closed 7 years ago

henning-krause commented 7 years ago

If I have to build multiple services possibly websites and aggregate everything into a single installer package I would have to compile everything one after another. Using this task, I can outsource single builds to another definition.

It would be great if I could do this:

So we would need this second task that waits for a build definition to complete and makes it artifacts available to the current build.

huserben commented 7 years ago

Hi @henning-krause

I'm currently working on porting the Task from PowerShell to Node.js. When this is done, it should be rather simple to write an additional Task that will wait for certain builds to finish, as the code can easily be shared by multiple Tasks.

However I will not implement this in the current PowerShell solution as this will not be maintained once the Node.js version is done. If this is urgent you could do it in a separate script yourself.

For fetching the Artifacts, what exactly do you mean by "makes it artifacts available to the current build"?

henning-krause commented 7 years ago

Hi @huserben,

thanks for the quick reply. Your time frame is fine for me. No need to rush :-)

Regarding your question: The other build(s) triggered by your tasks will probably publish some artifacts somewhere. It would be great if there was a way to download them to a local path in the current build.

huserben commented 7 years ago

Hi

ok it was really simple - i just updated version 2.0.0 of the build task based on node.js. I extracted a separate task to wait for the builds triggered in a later step :-) Please try it out and let me know if you need any more changes.

For fetching the artifacts, I think I would make it part of yet another Task. However i don't know when I would find the time for that. As mentioned you can easily write as well a custom script, the id's of the triggered builds are stored in a variable for subsequent tasks anyway that could be accessed for that.

huserben commented 7 years ago

Forget what I said - I got curios and figured out that it was rather simple to do that :-) If you now select in either Task that you fail the task if it was not successful, you will get the option to specify whether you want to download the artifacts and if so where to store them: grafik After this you can for example use the extract files task to unzip your artifacts and do whatever you need them for.

I saw as well that there is a (Preview) Task available that downloads artifacts as well, however it was not configurable in a way that you can specify which builds you want to download the artifacts from: grafik Anyway just as remark, if this would be possible I might would remove the option again from my task - no point in having duplicate functionality.

Thanks for your input and please let me know if the Task(s) work as you would expect them or if it needs some adaption. If you find any bugs or have other feature requests please let me know.

henning-krause commented 7 years ago

Thanks. That's great. I'll give it a try.