This document discusses continuous integration, which involves integrating code changes frequently from developers, ideally multiple times per day, and automatically testing the integrated codebase to provide quick feedback. Key aspects of continuous integration include maintaining a single code repository, automating builds, running self-testing of code through automated tests, having developers commit to the main code branch daily, automatically building and testing code on each commit, keeping the build fast, testing in the production environment clone, making the build status visible to all, automating deployments, and prioritizing fixing any broken builds. The presentation provides an example continuous integration workflow and tools used at Onebip including Phing for build automation and a deployment pipeline across different environments like CI, IT, UAT
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Continuous integration CloudParty 21 may 2014 - Milan
1. ROMA | LONDON| MILANO | PARIS | MADRID | REUS | BERLIN | BEOGRAD | ISTANBUL | SAN FRANCISCO | CIUDAD DE MÉXICO | SÃO PAULO | BOGOTÁ | MUMBAI
Un sistema di Continuous Integration fra progetti eterogenei
CloudParty 2014 - Deploy in Cloud - Milan 21 May
Simone Pasquini - @PasquiniSimone
2. 2
Big Bang Integration
● Integration is done close to a release
● Problems/Incompatibilities between the codes become evident at release
time
3. 3
Continuous Integration
M.Fowler: 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.
● Integrate frequently
● Automated build
● Detect integration errors quickly
4. 4
Continuous Integration
Maintain a Single Source Repository
● In general you should store in source control everything you need to build
anything, but nothing that you actually build (artefact).
● One project one repo
5. 5
Continuous Integration
Automate the Build
● Anyone should be able to bring in a virgin machine, check the sources
out of the repository, issue a single command, and have a running
system on their machine
6. 6
Continuous Integration
Make Your Build Self-Testing
● A suite of automated tests that can check a large part of the code base
for bugs. The tests need to be able to be kicked off from a simple
command and to be self-checking.
7. 7
Continuous Integration
Everyone Commits To the Mainline Every Day
● Prerequisite for a developer committing to the mainline is that they can
correctly build their code.
● Frequent commits encourage developers to break down their work into
small chunks of a few hours each.
8. 8
Continuous Integration
Every Commit Should Build the Mainline on an Integration Machine
● Every time a commit against the repository finishes the server
automatically checks out the sources onto the integration machine,
initiates a build, and notifies the committer of the result of the build
9. 9
Continuous Integration
Keep the Build Fast
● The whole point of Continuous Integration is to provide rapid feedback.
● Made a stage of pipeline with a sequential suite of
unit,integration,acceptance test
10. 10
Continuous Integration
Test in a Clone of the Production Environment
● As a result you want to set up your test environment to be as exact a
mimic of your production environment as possible
13. 13
Continuous Integration
key points
● Build on each computer
● All test suite green before push
● Integration test between project every push
● High priority for CI red build
16. 16
Continuous Integration
● Reduced risk during integration
● It does make them dramatically easier to find and remove bug
● Mindset
● Methodology and not a tool
20. 20
Continuous Integration
Pipeline
● 4 environments: CI, IT, UAT, PROD
o CI: unit,acceptance and integration test in isolation
o IT: db/app migration rollback, BDD between project, Cross browser
test
o UAT: Manual customer approval test
o PROD: Smoke test and KPI validation/monitoring test
● 9 pipeline for each heterogeneous projects
● Dependencies between environment and projects
22. 22
Continuous Integration
Thanks for listening
Links
http://martinfowler.com/articles/continuousIntegration.html
http://www.thoughtworks.com/continuous-delivery
23. ROMA | LONDON| MILANO | PARIS | MADRID | REUS | BERLIN | BEOGRAD | ISTANBUL | SAN FRANCISCO
CIUDAD DE MÉXICO | SÃO PAULO | BOGOTÁ | MUMBAI
Neomobile - Corporate Headquarters
Viale Pasteur 78, 00144 Roma – Italy | Tel. +39 0698262553
info@neomobile.com