Kris Bonev
Kris Bonev

Reputation: 552

Building a continuous delivery pipeline

I have a quite specific question, which requires a lot of knowledge related to servers and a lot of build/test/deploy tools.

I built a continuous delivery pipeline for .NET, but the way I did it seems a bit pricey in the end. We are yet to build a team, which will grow gradually taking several projects - ASP .NET MVC.

By default I have to work with Visual Studio, Jira and BitBucket Cloud. So I added NUnit and Resharper for test and code quality metrics. I added also TeamCity as a CI tool. In the end I have settled for Octopus Deploy for an automation deploy tool.

As you might guess, this comes to be quite pricey. We have already paid for Visual Studio, Jira and Bitbucket. Apart from that, Resharper is a paid tool as is TeamCity, though it is free in the beginning, but comes to be really(ridiculously) expensive after the process has grown(more than 3 build agents). Octopus Deploy is expensive as well.

So, now I want to replace some of the tools I have used. However, it is hard to pick new, because all the resources I read are looking into different aspects. I want to have a pipeline, in which it is detected which branch is committed and based on this compiles the solution(+ nuget packages), runs the unit tests and if all is well automatically deploys the version with the new commit to the specified environment. Priorities are the price and how easy it is to be implemented with the .NET applications. I haven't found a solution, which is able to work with the rest and fit into the picture.

I took a look at Jenkins and MSDeploy, but need advice on the specified above matter. Also it should be a feasible solution, as it has to be set up once and not dealt a lot anymore.

Upvotes: 2

Views: 699

Answers (2)

Mario
Mario

Reputation: 58

If your priority is really how easy it is to be implemented with .NET, I would rather go for TeamCity than Jenkins all day long. I have worked with both and TeamCity is way more reliable. Jenkins has caused me a lot of problems and wasted a decent amount of time.

Consider deploying manually for a while before going for Octopus or another tool. With .NET usually you could publish any app in the space of a minute or two. How many deploys per day are you going to do? It should be something really intensive if you need to go for such a tool right away.

Basically I would say to keep the configuration and just drop Octopus. You will notice a big step back from TeamCity to Jenkins(speaking for .NET).

Upvotes: 1

user4433284
user4433284

Reputation:

Visual studio, jenkins, nexus, jira, gitblit.

Jenkins, nexus and gitblit is free. Jenkins will poll gitblit for changes, runs the build, using the nuget plugin it will produce the package and upload it to nexus, where it can be consumed by visual studio.

Jenkins can also be use to deploy, it might take more work than octopus but all octopus reall is a bunch of nice powershell scripts, you just got to write all that yourself in your jenkins build job.

e.g. a jenkins deploy job to deploy a java app to linux server,

  1. build jar
  2. scp jar over
  3. ssh java -jar runtest.jar
  4. copy test results back to jenkins, or consume it directly

Upvotes: 2

Related Questions