I have a question/scenario and looking for advice on how to approach this.
We have a “Project A” that requires MS C++ Packages in order to run. The problem is that it might need several of these packages (e.g. 2015 and 2017) and I can’t figure out a good approach of deploying several packages.
What I have tried currently is creating a Octopus project for VS C++ Packages. We’ve settled for a versioning like 2015.0.86 for a 2015 C++ package x86. Example:
That way we have a central storage for the dependencies and could potentially see where it was deployed to.
The idea was to use the “Deploy project” step within “Project A”'s process to also deploy the dependency to the C++ package. This way we would have both in Octopus and could manage it in one place. Example:
The problem is that I have found no way of deploying multiple releases of the C++ project as a dependency, only the latest version which is not always enough.
Specific example of our use case:
“Project A” requires both 2015 and 2017 C++ packages. Within the C++ project in Octopus we have all versions from 2012 onwards. Within the step I could only deploy 2017, but not 2015 which will cause the deployment and startup of “Project A” to fail subsequently as the application wont start.
I assume that this approach isn’t the most elegant but I cannot think of a better one.
The baseline of my question is what approach would you choose for deploying several dependencies along with a single project.
My ideas would be:
- include the dependency in each package of Project A. I find this not elegant as many other projects can have the same dependency, resulting in having hundreds of copies of a dependency in packages. Also it seems not transparent
- Include a script step that just points to a defined location on the network and handles the logic (e.g. based of variables in Project A, knowing which dependencies to install)
None of them seem elegant, really. Do you have a best practice for this? I assume lots of people are facing the challenge of having many projects with identical dependencies.
Let me know if any of that is gibberish
Thanks in advance,