What is the difference between octo.exe's create-release and octopack as an argument to msbuild

1.1k Views Asked by At

I am having trouble understanding the fundamentals of octopus deployment. I am using octo.exe with the create-release and deploy-release commands. I am also using the octopack plugin.

I am getting an error but that's not really the point - I want to understand how these peices fit together. I have searched and searched on this topic but every article seems to assume the reader has a ton of background info on octopus and automated deployment already, which I do not.

My question is: what is the difference between using octopack by passing the octopack argument to msbuild and simply creating a release using octo.exe? Do I need to do both, or will one or the other suffice? If both are needed, what do each of them do exactly?

2

There are 2 best solutions below

0
On BEST ANSWER

Release and deployment as defined in the Octopus Deploy Documentation:

...a project is like a recipe that describes the steps (instructions) and variables (ingredients) required to deploy your apps and services. A release captures all the project and package details so it be deployed over and over in a safe and repeatable way. A deployment is the execution of the steps to deploy a release to an environment.

OctoPack is

...the easiest way to package .NET applications from your continuous integration/automated build process is to use OctoPack.

It is easy to use, but as Alex already mentioned, you could also use nuget.exe to create the package.

Octo.exe

is a command line tool that builds on top of the Octopus Deploy REST API.

It allows you to do much of the things you'd normally do through the Octopus Deploy web interface.

So, OctoPack and octo.exe serve a different purpose. You can't create a release with OctoPack and octo.exe is not for creating packages.

2
On

Octopack is there to NuGet package the project. It has some additional properties to help with pushing a package onto the NuGet feed, etc.

octo.exe is used to automate the creation of releases on the Octopus server and optionally deploy.

Note: a release in Octopus is basically a set of instructions on how to make the deployment. It includes the snapshot of variables and steps, references to the versions of the NuGet packages, etc.


octopack is a good starter, however I stopped using it some time ago with a few reasons.

  • No support for .Net 2.0 projects (and I needed to move all legacy apps into Octopus)
  • didn't like it modifying the project files (personal preference)

Pure nuget.exe was not much more work for me.