I am evaluating Octopus for our startup, and I am just wondering if there is some kind of walkthrough anywhere on how to use it to deploy an ASP.NET 5 web application. I added the OctoPack package to the project, and it generates a .nuget package on build, but looking at the contents it does not seem to contain what would be needed; i.e. no config.json file(s), nothing from wwwroot, etc…
I came across this github project:
which is an MVC6 project that was "built to demonstrate how a multi-tier application can be deployed using Octopus Deploy. " but I don’t see any information on how to actually deploy it
Actually I was mistaken… something else just happened to be generating the nupkg that I was seeing. Octopack does not seem to be working for the ASP.NET 5 project. If I run
msbuild Project.sln /t:Build /p:RunOctoPack=true
It does not seem to do anything related to OctoPack
As you have discovered, OctoPack does not support ASP.NET5 projects yet. It’s something we’ve got on our radar as something to sort out. So, unfortunately there’s no superduper happy path to deploying ASP.NET5 sites with Octopus yet, there are a few hoops that needs jumping through.
I’ve put together a quick draft of the process we’ve used for a couple of internal projects that are written in ASP.NET5 here that could possibly help steer you in the right direction to deploying your ASP.NET5 projects with Octopus.
It’s on our roadmap for 3.3 (we might, or might not include it though due to the amount of changes MS is still making to it) and Paul is working on a guideline for ASP.NET 5 applications.
Just a quick comment to “we might, or might not include it though due to the amount of changes MS is still making to it”:
As of 5 days before your comment, November 18th. to be specific, ASP.NET 5 was released as RC with a Go Live license. This means that MS is no longer making changes to it and the only things remaining are bug fixes, performance optimizations and other administrative work that comes with such a large release.
How do you package an app in ASP.NET 5 RC1? dnu publish.
How will you do it in the upcoming ASP.NET 5 RC2? dotnet publish.
What does the output of publishing look like in ASP.NET 5 RC1? A set of nested folders with each package in its own folder.
What does the output of publishing look like in ASP.NET 5 RC2? A flat folder full of binaries and then a wwwroot folder. Maybe. The team haven’t 100% decided on that yet.
We’re following it closely and we’ll try to ship ASP.NET 5 support as soon as it stabilises, but putting an RC tag on it doesn’t prevent them from making some big changes still. And we might ship 3.3 before they ship a stable v5.
There is no news on this front yet unfortunately, it’s still a moving goal post with changes going on in regards to building/packaging an ASP.NET 5 application so we’re hoping this will stabilise in the new year.
I’ll leave a blank comment here, so I can get replies. Asp.Net 5 is something I’d like to do, but given current lack of deployment plan for Asp.Net 5 I’ll have to do the new project in the old MVC5
We have introduced a few new features and are working on a few new changes to make publishing and deploying ASP.NET Core 1 (previously ASP.NET 5) applications a bit easier with Octopus.
The below list of GitHub issues are improvements we’re making (or have released) to make it easier to publish and deploy ASP.NET Core 1 applications:
These will make creating and pushing an ASP.NET Core 1 application to Octopus a whole lot easier without the need for hacks required to make a NuGet package out it.
In progress: #2411 - Octo.exe and TeamCity plugin support for pushing packages
Done: #2183 - Support .zip and .tar.gz package formats
These will make replacing variables in your config.json files work in a similar way to how it works for ASP.NET applications.
Done: #2364 - JSON Config feature should match-and-replace
We’re hoping these changes will make it much easier for our customers to begin deploying their ASP.NET Core 1 applications with Octopus, but as the ASP.NET team are still making major changes for RC2 (i.e. the move from dnu/dnx to dotnet) we might have to make further changes in response to the changes they are making.
Lack of ‘support’ is not a show-stopper. It’s just a matter of writing some Powershell scripts on your build server (as per the link mentioned in a previous post), and using a PreDeploy or custom step in Octopus. We’ve got this up and running in TeamCity + Octopus V2. If I get some time I’ll write a post, but by then Octopus will probably support it out of the box.