This has probably been encountered before but I cannot seem to find a previous solution. We have an automatic release creation trigger in each project (which leads to an automatic deployment into our development environment), some of which have multiple packages required. The last package pushed to the repository from TFS is the database, but if there is no update to the database, then there is no package pushed.
Because the database package isn’t always pushed, we can’t use the database package as the trigger, so we are currently using the last package that we know will be pushed for that project. However, if the database IS pushed, it will be after the newest release will have already been created without the newest database. In fact, an even older database package seems to be used that violates the channel pre-release tag rule.
Is there a way to delay the trigger until after all packages have been pushed, or a build flag in TFS using OctoPack that can allow us to pre-determine the order of package creation?
Thank you for taking the time to review this and for any feedback that you can provide!
Thanks for reaching out!
Octopack is very good when it comes to creating very simple packages and pushing them to a repository. But when things get more complicated (such as your scenario), it does lack a bit power. For this reason we are slowly trying to move away from it to another set of tools.
In your case I would recommend you to use Octopack only for the packaging + pushing like you’ve been doing. Then disable the
Automatic Release Creation feature in your project, and instead add a step to your build process that triggers the release and only runs if all the previous steps finished successfully (meaning all the packages were created and pushed OK).
Which version of TFS are you currenly using? Based on this I’ll recommend you the best way to trigger a release in Octopus from your build process.
This is very useful information in regards to planning and moving forward, thank you Dalmiro!
We currently use TFS2017 v15.105.27412.0
Cool you are using the latest TFS, that makes things a lot easier
I’m gonna break this process down in steps so you can work on this in an organized fashion:
Disable ARM in your project so releases are no longer being created when a package is pushed to the repository.
Install and configure the Octopus Extension for TFS using your servers URL/APIKey https://octopus.com/docs/api-and-integration/tfs-vsts/using-octopus-extension#installing-the-extension
Once the extension is installed, you’ll see a couple of Octopus-Related steps available in your build process. The one you should be using to create a release is called Create Octopus Release. Make sure to set this step to run only if all previous steps were successful (meaning all packages were pushed OK).
Let me know how that goes.
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.