Introduction
Please note this article is in draft and I’ll update it in the coming days, but some of the bullet points there already may be useful to some people
This article will detail how to setup a CI build and a deployment process to build and deploy an ASP.NET Core 2.0 to an IIS web server. It will details the pre-requisites for setting up the VM. For this article the VM setup will be manual steps, but a future article will automate them.
This article will refer to TFS and Visual Studio. In both cases that is the current latest versions of both, TFS 2018 Update 1 and Visual Studio 2017 15.6.
Initial Setup
First of all we need something to deploy. So create a new ASP.NET Core 2.0 app in Visual Studio and commit to a Git repository in TFS. I’m not going to go into any details about that part as it’s not the focus of the article.
If you are using TFS package management, then make sure you push all your nuget packages to TFS. Check both of these folders and push all the *.nupkg files;
- c:\user\\[my username]\\.nuget\packages
- c:\program files\dotnet\sdk\NuGetFallbackFolder
You might find this command helpful for pushing the packages;
for /r %i in (*) do nuget push \"%i\" -source http://[TfsUrl]:8080/tfs/[CollectionName]/_packaging/[FeedName]/nuget/v3/index.json -ApiKey key
Creating a CI Build in TFS
The CI build needs 4 steps as a minimum;
- Restore Packages
- Build Solution
- Publish Web App to Artifacts Staging Folder
- Publish Artifacts
In my example I have also included;
- Run Unit Tests
- Copy Integration Tests to Artifacts Staging Folder
I’ll go through each of the steps here and show you how they are configured in my example;
Restore Packages
Build Solution
Run Unit Tests
Copy Integrations Tests to Artifacts Staging Folder
Publish Web App to Artifacts Staging Folder
Publish Artifacts
Setting Up the Target VM
The target VM needs the follow configuration. You can either use a tool like DSC, Puppet or Chef for this or do it manually;
- IIS Feature Installed
- .NET Core 2 Hosting Installed
- WinRM enabled
- An account with admin access (or the required access) that TFS Release Management can use
- An IIS WebApp setup and configured
I’ll run through each of these steps and show you how they are done manually.
IIS Feature Install
.NET Core 2 Hosting Install
WinRM Setup
Account setup
IIS WebApp setup and configuration
Creating a Deployment in TFS
Now we need to setup a TFS Release definition to deploy the artifact generated in the CI build.
The deployment process only requires 2 steps;
- Copy artifacts from build to the target server
- Deploy the artifact to IIS
I’ve also included the following step in my example;
- Run Integration Tests
I’ll go through each of the steps here and show you how they are configured in my example;
Copy artifacts from build to target server
Deploy the artifact to IIS
Run integration / smoke tests
Summary
This article (once completed) has shown you how to get a basic CI build and deployment setup for an ASP.NET Core 2.0 app in TFS. I’ve not covered every single detail here, so if there is anything I’ve missed that you need to know, please feel free to contact me.
Back to Home