SOLID Principles in Software Design

advertisement
Build Processes and
Continuous Integration
Automating Build Processes
SoftUni Team
Technical Trainers
http://softuni.bg
Software University
Table of Contents
Source Code Building
Build Processes
Continuous Integration
 JetBrains TeamCity
2
Build Automation
Software Builds
 What does it mean to build software?
 The process of compiling and assembling the system's
modules to obtain the final product
 Build activities can also include:
 Getting the latest version from the source control repository
 Linking external resources
 Executing unit tests
 Creating installation packages
4
Build Processes in Visual Studio
 You can create custom build processes

Used in continuous integration environments

Contain a set of steps to execute when building the project
 Build processes resolve dependencies across projects
 Build processes can prevent team members from “breaking
the build”
 Each commit in the source control repository goes through the build
process first
 If it fails, it is not sent to the repository
 https://msdn.microsoft.com/en-us/library/ms181715.aspx
5
Creating a Build Definition
 Connect Visual Studio’s Team Explorer to a source control system
 Open Builds in Team Explorer
 Click New Build Definition
 Use the UI to create your own build process definition

Specify the steps which will be performed after VS starts
to build your project

Specify output file locations
 https://msdn.microsoft.com/en-us/library/ms181716.aspx
6
Continuous Integration
JetBrains TeamCity
Continuous Integration (CI)
 Continuous integration (CI)
 Automating the build and integration process
 Build the entire system each time any new code is checked in the
source control repository
 Run all the automated tests for each build
 What does "continuous" mean?
 Ideally – build it after every check-in
 Practically – for larger systems, every 1-2 hours

Or at least a couple of times a day
8
Components of the CI System
 Build server – separate machine (or pool)
 Source control repository
 Subversion, Team Foundation Server (TFS), etc.
 Automated build system
 Ant, NAnt, MSBuild, Cruise Control, TFS, etc.
 Status indicators / notifications to make problems visible right
away
 Email notifications / tray build notify utilities
 Public build status monitors
9
Continuous Integration Systems
 CruiseControl
 Very popular, powerful, open source CI tool
 Extensible, plug-in based, large community
 CruiseControl.NET
 .NET clone of CruiseControl
 Team Foundation Server (TFS)
 TFS provides build-in continuous integration
 JetBrains TeamCity
10
The CI Process
11
JetBrains TeamCity
Live Demo
Summary
Source Code Building
Build Processes
Continuous Integration
 JetBrains TeamCity
13
Build Processes and Continuous Integration
?
http://softuni.org/courses/high-quality-code
License
 This course (slides, examples, demos, videos, homework, etc.)
is licensed under the "Creative Commons AttributionNonCommercial-ShareAlike 4.0 International" license
 Attribution: this work may contain portions from

"Fundamentals of Computer Programming with C#" book by Svetlin Nakov & Co. under CC-BY-SA license

"C# Part I" course by Telerik Academy under CC-BY-NC-SA license
15
Free Trainings @ Software University
 Software University Foundation – softuni.org
 Software University – High-Quality Education,
Profession and Job for Software Developers

softuni.bg
 Software University @ Facebook

facebook.com/SoftwareUniversity
 Software University @ YouTube

youtube.com/SoftwareUniversity
 Software University Forums – forum.softuni.bg
Download