introduction to continuous integration 2014
DESCRIPTION
TRANSCRIPT
Introduction to Continuous Integration
How I Learned to Stop Worrying and Love the Bugs
2007: Linked Senior
RELEASE EARLY,
RELEASEOFTEN
Super Star Developer
Stressful Releases
Sudden Clarity
Deployment Pipeline
GitLib Repo
1. Clean 2. Checkout 3. Download libs 4. Compile
5. Package 6. Setup DB 7. Run Tests 8. Deploy
Local Web Server
Local DB Server
$ compile *.*
$ zip myapp.zip
$ scp_upload myapp.zip
Step 1: Automate Build
Step 2: Automate Tests
create_user(username, password)
user = login(username, password)
assert user != null
Less Stressful Releases
1. Before demo/release2. When we have time3. Every week4. Every day5. Other
When should we run tests?
1. Before demo/release2. When we have time3. Every week4. Every day5. Other: every time you commit
Step 3: CI Server
GitLib Repo
1. Clean 2. Checkout 3. Download libs 4. Compile
5. Package 6. Setup DB 7. Run Tests 8. Deploy
Local Web Server
Local DB Server
3.Email report
CI ServerBuild, run, test
1. Clean 2. Checkout3. Download
libs4. Compile
5. Package 6. Push 7. Setup DB8. Run Tests
2.Committrigger
Git
1.CommitStep 3: CI Server
Jenkins Demo!
$ sudo apt-get install jenkins
$ sudo /etc/init.d/jenkins start
TESTRUNBUILD
Quality
Speed
Innovation
MOVE FAST
AND
BREAK THINGS
● Source code on GitHub● Setup CI and demo on YouTube● “Online CI providers are the new black”, JoliCode, Feb
2012● Interactive slides on Google Drive
Additional resources