Learning ASP.NET Core 2.0
上QQ阅读APP看书,第一时间看更新

Creating a Continuous Integration Pipeline in VSTS

Building great applications is not a trivial task. On the contrary, it is a difficult and complex endeavor in which many actors need to efficiently work together to create applications that correspond to high-end user expectations.

Today, everything moves very fast and time-to-market is very important for success. This chapter is going to introduce methods, processes, and tools to help you optimize your development processes, thus building high-quality software with short release cycles.

Traditionally, building software is done by planning whole software projects from beginning to end, writing detailed specifications, developing and testing (often in a rush), while hoping that everything will work as expected (V-model).

Sometimes this approach works and sometimes it does not. When it does not work, developers implement features while only testing manually, with the objective of adding unit tests later. Then, at the end of the project, they have to speed up to assure on-time delivery and often run out of time.

This leads to projects with significant technical, functional, and quality flaws, with a high number of bugs and tremendous maintenance effort resulting in long release cycles. In the worst case, end users will not like the delivered features, thus the final product could be considered a complete failure.

There is a better way of doing things, something people have been talking about for some time now, and that you surely have already heard of—Agile methodologies!

Agile methodologies, when combined with continuous integration (CI) and continuous deployment (CD), provide solutions for building better software with a fast time-to-market, lower maintenance costs, better overall quality, and higher customer satisfaction.

While this book is not about Agile methodologies as such, we recommend familiarizing yourself with the subject, and we are going to explain all of the tools and processes that accompany and surround it.

In this chapter, we will cover the following topics:

  • Continuous integration, continuous deployment, and build and release pipelines
  • Using Visual Studio Team Services (VSTS) for continuous integration and continuous deployment
  • Creating a free VSTS subscription and your first VSTS project
  • Organizing your work via work items
  • Using Git as a version control system
  • Creating a VSTS build pipeline
  • Creating a VSTS release pipeline