SlideShare a Scribd company logo
Continuous Integration 101

Gary Ewan Park
gep13@gep13.co.uk
Twitter: @gep13
Blog: http://www.gep13.co.uk/blog
Agenda
•
•
•
•

What is Continuous Integration?
What are the barriers to entry?
So why would we want to use this?
What is TeamCity?

• How do I get started with TeamCity?
• What is psake?

• How do I get started with TeamCity and psake?
Source Code

http://gep13.me/CIDemos
Who here currently
uses Continuous
Integration?
What is Continuous
Integration?
A Definition…
“Continuous Integration is a software
development practice where members of a team
integrate their work frequently, usually each
person integrates at least daily – leading to
multiple integrations per day. Each
integration is verified by an automated build
(including test) to detect integration errors as
quickly as possible. Many teams find that this
approach leads to significantly reduced
integration problems and allows a team to
develop cohesive software more rapidly.”
Reference
 http://www.martinfowler.com/articles/continuousIntegration.html
Another Definition…
“CI is the embodiment of tactics that gives us,
as software developers, the ability to make
changes in our code, knowing that if

we break software, we’ll receive
immediate feedback… [It is] the
centrepiece of software development, as it
ensures the health of software through
running a build with every change.”
Reference
 “Continuous Integration” – Paul Duval, Addison-Wesley, 2007
What does all that mean?

http://en.wikipedia.org/wiki/Continuous_integration
What are the
barriers to entry?
Typical reasons to not implement Continuous
Integration
•
•
•
•
•

It means increased maintenance
This is too much change too fast
It means additional hardware and software costs
Developers should compiling and testing
The project is too far along to add it
So, why would we
want to use this?
So why would I want to implement
Continuous Integration?
• Immediate feedback when there is a problem
• Reduced Risks
• Increased project visibility i.e.
problems, roadblocks, current status, etc
• It is the first building block towards Deployable software
(Continuous Delivery and Continuous Deployment)
What is TeamCity?

Note: I am not an affiliate of JetBrains, I just
really like their products. My views are my own.
A Definition…

“TeamCity is a closed source, Javabased build management and
Continuous Integration server from
JetBrains”
Reference
 http://en.wikipedia.org/wiki/TeamCity
 http://www.jetbrains.com/teamcity/
Notable Features
• You can perform gated commits to your source control
system
• Allows running multiple builds and tests under different
environments simultaneously
• Integrated code coverage, inspections, and duplicates
search
• Integration with IDEs
• It’s FREE! (Up to a point, at which point there is
commercial license)
How do I get started
with TeamCity?
Continuous integration 101
Demo 1

Adding Continuous Integration to an ASP.NET
MVC Project
What is psake?
A Definition…

“psake is a domain-specific language
and build automation tool written in
Powershell to create builds using a
dependency pattern similar to Rake or
MSBuild”
Reference
 http://en.wikipedia.org/wiki/Psake
 https://github.com/psake/psake
Continuous integration 101
How do I get started
with TeamCity and
psake?
Continuous integration 101
Demo 2

Adding Continuous Integration to an ASP.NET
MVC Project using psake
“Continuous Integration:
Improving Software Quality and
Reducing Risk”
- Martin Fowler Signature Books
Paul M. Duvall
http://gep13.me/cibook1
“Continuous Integration in .Net”
- Manning
Marcin Kawalerowicz and Craig
Berntson
http://gep13.me/cibook2
Questions?

Feel free to email me any additional
questions at
gep13@gep13.co.uk

More Related Content

PPTX
Semantic Versioning with GitVersion - Take 2
PPTX
Semantic Versioning with GitVersion
PPTX
SemVer, the whole story
PPTX
Git in 10 minutes (WordCamp Europe 2017)
PPTX
Bringing Pull Request to Gerrit
PDF
GitLab webcast - Release 8.4
PDF
Introducing GitLab
PPTX
Using Git with WordPress - Presented by Nigel Rodgers.
Semantic Versioning with GitVersion - Take 2
Semantic Versioning with GitVersion
SemVer, the whole story
Git in 10 minutes (WordCamp Europe 2017)
Bringing Pull Request to Gerrit
GitLab webcast - Release 8.4
Introducing GitLab
Using Git with WordPress - Presented by Nigel Rodgers.

What's hot (20)

PPT
Flex and .NET Integration
PPTX
GitLab 8.6 - Release Webcast
PPTX
Azure Integration DTAP Series, How to go from Development to Production – Par...
PPTX
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
PPTX
GitLab 8.5 Highlights and Step-by-step tutorial
PPTX
It's all about feedback - code review as a great tool in the agile toolbox
PDF
Increase the Velocity of Your Software Releases Using GitHub and DeployHub
PPTX
Git Lab Introduction
PPTX
CI back to basis
PPTX
Zero-Downtime Gerrit Code Review Upgrade
PDF
Git Branching for Agile Teams
PDF
Introducing GitLab (September 2018)
PDF
Improving Untestable Code
ODP
Diffy gets enterprise grade
PPTX
Using Github Insight as metric for the Developer collaboration and work metri...
PPTX
Azure Integration DTAP Series, How to go from Development to Production – Par...
PPTX
Back to basic: continuous integration (Madrid DevOps)
PPTX
Egit democamp-karlsruhe-2011-11-29
PPTX
Up GitLab Presentation 2015
ODP
You shall not pass - Control your code quality gates with a wizard.
Flex and .NET Integration
GitLab 8.6 - Release Webcast
Azure Integration DTAP Series, How to go from Development to Production – Par...
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
GitLab 8.5 Highlights and Step-by-step tutorial
It's all about feedback - code review as a great tool in the agile toolbox
Increase the Velocity of Your Software Releases Using GitHub and DeployHub
Git Lab Introduction
CI back to basis
Zero-Downtime Gerrit Code Review Upgrade
Git Branching for Agile Teams
Introducing GitLab (September 2018)
Improving Untestable Code
Diffy gets enterprise grade
Using Github Insight as metric for the Developer collaboration and work metri...
Azure Integration DTAP Series, How to go from Development to Production – Par...
Back to basic: continuous integration (Madrid DevOps)
Egit democamp-karlsruhe-2011-11-29
Up GitLab Presentation 2015
You shall not pass - Control your code quality gates with a wizard.
Ad

Viewers also liked (10)

PPTX
Mmmm, chocolatey goodness!
PDF
Continuous integration 101
PDF
Continuous delivery 101
PPTX
Continuous Integration
PPTX
Continuous Integration & Package Management 101
PDF
Improving software quality using Continuous Integration
PDF
Continuous Integration
PDF
Continuous Integration 101
PDF
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
PPTX
using Chocolatey for application deployments
Mmmm, chocolatey goodness!
Continuous integration 101
Continuous delivery 101
Continuous Integration
Continuous Integration & Package Management 101
Improving software quality using Continuous Integration
Continuous Integration
Continuous Integration 101
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
using Chocolatey for application deployments
Ad

Similar to Continuous integration 101 (20)

PDF
Continuous Integration in NET Marcin Kawalerowicz
PDF
Continuous Integration in NET Marcin Kawalerowicz
PPT
Enter the Team City
PPTX
Introducing Continuous Integration Using Vsts
PPT
Continuous integration
PDF
Flight East 2018 Presentation–Continuous Integration––An Overview
PPTX
Continuous integration
PPT
Continuous Integration using Cruise Control
PPTX
Continuous integration sql in the city
PPTX
Beginners Guide to CI
PDF
Continuous Integration in NET Marcin Kawalerowicz 2024 Scribd Download
PDF
Continuous Integration
PDF
Introduction to Continuous Integration
PPTX
Continuous integration for se group meeting
PPTX
Continuous Integration and Delivery
PPTX
Adrian marinica continuous integration in the visual studio world
PDF
Continuous Integration in NET Marcin Kawalerowicz
PPT
Continuous Integration and Builds
PPTX
Continuous integration with Jenkins
PPTX
Continuous integration
Continuous Integration in NET Marcin Kawalerowicz
Continuous Integration in NET Marcin Kawalerowicz
Enter the Team City
Introducing Continuous Integration Using Vsts
Continuous integration
Flight East 2018 Presentation–Continuous Integration––An Overview
Continuous integration
Continuous Integration using Cruise Control
Continuous integration sql in the city
Beginners Guide to CI
Continuous Integration in NET Marcin Kawalerowicz 2024 Scribd Download
Continuous Integration
Introduction to Continuous Integration
Continuous integration for se group meeting
Continuous Integration and Delivery
Adrian marinica continuous integration in the visual studio world
Continuous Integration in NET Marcin Kawalerowicz
Continuous Integration and Builds
Continuous integration with Jenkins
Continuous integration

More from Gary Park (7)

PPTX
A Piece of Cake - DDD North
PPTX
A Piece of Cake - DDD11 - Reading
PPTX
A Piece of Cake - NDC Oslo 2016
PPTX
Having your cake, and eating it too! - DDDScotland
PPTX
Having your cake, and eating it too!
PPTX
Getting started with caliburn.micro and windows phone 7
PPTX
StyleCop breaking down the barriers to entry
A Piece of Cake - DDD North
A Piece of Cake - DDD11 - Reading
A Piece of Cake - NDC Oslo 2016
Having your cake, and eating it too! - DDDScotland
Having your cake, and eating it too!
Getting started with caliburn.micro and windows phone 7
StyleCop breaking down the barriers to entry

Recently uploaded (20)

PDF
KodekX | Application Modernization Development
PDF
Electronic commerce courselecture one. Pdf
PDF
Machine learning based COVID-19 study performance prediction
PPTX
sap open course for s4hana steps from ECC to s4
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Spectroscopy.pptx food analysis technology
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Big Data Technologies - Introduction.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
KodekX | Application Modernization Development
Electronic commerce courselecture one. Pdf
Machine learning based COVID-19 study performance prediction
sap open course for s4hana steps from ECC to s4
Programs and apps: productivity, graphics, security and other tools
Network Security Unit 5.pdf for BCA BBA.
Spectroscopy.pptx food analysis technology
Diabetes mellitus diagnosis method based random forest with bat algorithm
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
“AI and Expert System Decision Support & Business Intelligence Systems”
20250228 LYD VKU AI Blended-Learning.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
Empathic Computing: Creating Shared Understanding
Big Data Technologies - Introduction.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Review of recent advances in non-invasive hemoglobin estimation
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Per capita expenditure prediction using model stacking based on satellite ima...

Continuous integration 101

  • 1. Continuous Integration 101 Gary Ewan Park gep13@gep13.co.uk Twitter: @gep13 Blog: http://www.gep13.co.uk/blog
  • 2. Agenda • • • • What is Continuous Integration? What are the barriers to entry? So why would we want to use this? What is TeamCity? • How do I get started with TeamCity? • What is psake? • How do I get started with TeamCity and psake?
  • 4. Who here currently uses Continuous Integration?
  • 6. A Definition… “Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily – leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly.” Reference  http://www.martinfowler.com/articles/continuousIntegration.html
  • 7. Another Definition… “CI is the embodiment of tactics that gives us, as software developers, the ability to make changes in our code, knowing that if we break software, we’ll receive immediate feedback… [It is] the centrepiece of software development, as it ensures the health of software through running a build with every change.” Reference  “Continuous Integration” – Paul Duval, Addison-Wesley, 2007
  • 8. What does all that mean? http://en.wikipedia.org/wiki/Continuous_integration
  • 10. Typical reasons to not implement Continuous Integration • • • • • It means increased maintenance This is too much change too fast It means additional hardware and software costs Developers should compiling and testing The project is too far along to add it
  • 11. So, why would we want to use this?
  • 12. So why would I want to implement Continuous Integration? • Immediate feedback when there is a problem • Reduced Risks • Increased project visibility i.e. problems, roadblocks, current status, etc • It is the first building block towards Deployable software (Continuous Delivery and Continuous Deployment)
  • 13. What is TeamCity? Note: I am not an affiliate of JetBrains, I just really like their products. My views are my own.
  • 14. A Definition… “TeamCity is a closed source, Javabased build management and Continuous Integration server from JetBrains” Reference  http://en.wikipedia.org/wiki/TeamCity  http://www.jetbrains.com/teamcity/
  • 15. Notable Features • You can perform gated commits to your source control system • Allows running multiple builds and tests under different environments simultaneously • Integrated code coverage, inspections, and duplicates search • Integration with IDEs • It’s FREE! (Up to a point, at which point there is commercial license)
  • 16. How do I get started with TeamCity?
  • 18. Demo 1 Adding Continuous Integration to an ASP.NET MVC Project
  • 20. A Definition… “psake is a domain-specific language and build automation tool written in Powershell to create builds using a dependency pattern similar to Rake or MSBuild” Reference  http://en.wikipedia.org/wiki/Psake  https://github.com/psake/psake
  • 22. How do I get started with TeamCity and psake?
  • 24. Demo 2 Adding Continuous Integration to an ASP.NET MVC Project using psake
  • 25. “Continuous Integration: Improving Software Quality and Reducing Risk” - Martin Fowler Signature Books Paul M. Duvall http://gep13.me/cibook1
  • 26. “Continuous Integration in .Net” - Manning Marcin Kawalerowicz and Craig Berntson http://gep13.me/cibook2
  • 27. Questions? Feel free to email me any additional questions at gep13@gep13.co.uk