Search code examples
visual-studioazurenuget-packageoctopus-deploy

Deploy ARM Template with Octopus Deploy in a Package


I have a created an ARM template in Visual Studio, and I need to package the JSON files so that I can use the option in Octopus Deploy to deploy the JSON files within the ARM template as a package - as described in the following link, under section 'Template Contained in a Package

https://octopus.com/docs/deploying-applications/azure-deployments/resource-groups

The problem is that I don't know what application in Visual Studio to package the application? I did some research and I read that the best package to use in nuspec as described here:

https://dinventive.com/blog/2016/10/20/5-steps-and-under-30-minutes-to-deploy-arm-templates-via-octopus-deploy/

However, there are a whole bunch of nuspec applications. The closet I got to what I need is the NuGetToolsPackager, as shown in the image.

nuget

However, if there are any other suggestions, they will be most welcome.


Solution

  • The link you provided shows how to create the package from a build server (in this case VSTS), which is the recommended way to go. Packaging + building should be orchestrated from a build server, and not from and IDE if possible :)

    That said, one good way to do this from Visual Studio would be to add a dependency to the OctopusTools package which will download Octo.exe during your build. Then you can add a post-build script that calls Octo.exe pack to create your package, and then Octo.exe push to push it to a repository.

    Documentation for Octo.exe pack: https://octopus.com/docs/packaging-applications/creating-packages/nuget-packages/using-octo.exe

    Documentation for Octo.exe push: https://octopus.com/docs/api-and-integration/octo.exe-command-line/pushing-packages