SlideShare a Scribd company logo
Continuous Integration
for Ruby on Rails
David Paluy
Jul 2015
Real testing is hard
Let computers do the simple testing
Smart humans for smart testing
Agenda
● CI overview for Rails
● Artifacts
● Integration
● From CI to Continuous Deployment
Continuous Integration (CI)
CI - is a Development practice that requires
developers to integrate code into a shared
repository several times a day. Each check-in is
then verified by an automated build, allowing
teams to detect problems early.
CI for Rails
Artifacts
● Code Coverage
● Static Code analysis
● Documentation
Code Coverage - SimpleCov
Static Code Analysis
CodeClimate - Analysis SaaS
Self hosted - https://github.
com/codeclimate/codeclimate
Documentation
Rails ERD
http://rails-erd.rubyforge.org/
Generate API doc https://github.
com/Apipie/apipie-rails
Integration with Github
Integration
Continuous Integration builds
CONFIDENCE
Continuous Deployment
Continuous Deployment is part of the
continuous delivery ‘movement’.
The idea behind continuous delivery is to
automate the software delivery process as far
as possible.
Continuous Deployment
● Fast Feedback
● Confidence
● Predictability - Running the same script
Continuous Integration
Continuous integration for Ruby on Rails
Ad

Recommended

apidays LIVE Paris 2021 - Using OpenAPI to configure your API Gateway by Ole ...
apidays LIVE Paris 2021 - Using OpenAPI to configure your API Gateway by Ole ...
apidays
 
GitLab for CI/CD process
GitLab for CI/CD process
HYS Enterprise
 
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
GITS Indonesia
 
SFDC Seamless Deployment Techniques
SFDC Seamless Deployment Techniques
Pawan Tyagi (2x)
 
The Cloud Journey in an Enterprise - CoDe-Conf - Copenhagen October 11, 2018
The Cloud Journey in an Enterprise - CoDe-Conf - Copenhagen October 11, 2018
Anders Lundsgård
 
apidays LIVE Paris 2021 - Why GraphQL is Perfect For Microservices by Roy Der...
apidays LIVE Paris 2021 - Why GraphQL is Perfect For Microservices by Roy Der...
apidays
 
Design and Evolution of APIs in Microservice Architecture
Design and Evolution of APIs in Microservice Architecture
Lohika_Odessa_TechTalks
 
Tools for designing and building great APIs
Tools for designing and building great APIs
Kong Inc.
 
Leaping Forward: Finding The Future of Your API Docs
Leaping Forward: Finding The Future of Your API Docs
Pronovix
 
Advancing Your API Strategy in an Infrastructure World
Advancing Your API Strategy in an Infrastructure World
Pronovix
 
Avoiding the DevOps Tax
Avoiding the DevOps Tax
GitLab, Inc
 
apidays LIVE Paris 2021 - OpenAPI Generator - The Babel Fish of the API World...
apidays LIVE Paris 2021 - OpenAPI Generator - The Babel Fish of the API World...
apidays
 
Develop, deploy, and operate services at reddit scale oscon 2018
Develop, deploy, and operate services at reddit scale oscon 2018
Gregory Taylor
 
API SDK Development – Lessons Learned
API SDK Development – Lessons Learned
Pronovix
 
Kubernetes at Reddit: An Origin Story - KubeCon NA 2018
Kubernetes at Reddit: An Origin Story - KubeCon NA 2018
Gregory Taylor
 
apidays LIVE Paris 2021 - Building an Accessible API Spec with Traditional En...
apidays LIVE Paris 2021 - Building an Accessible API Spec with Traditional En...
apidays
 
API First Workflow: How could we have better API Docs through DevOps pipeline
API First Workflow: How could we have better API Docs through DevOps pipeline
Pronovix
 
apidays LIVE Paris 2021 - Automating API Documentation by Ajinkya Marudwar, G...
apidays LIVE Paris 2021 - Automating API Documentation by Ajinkya Marudwar, G...
apidays
 
[WSO2Con EU 2018] OpenAPI Specification 3 - The Evolution of Swagger
[WSO2Con EU 2018] OpenAPI Specification 3 - The Evolution of Swagger
WSO2
 
A Starters Guide to Building APIs with Javascript
A Starters Guide to Building APIs with Javascript
All Things Open
 
API Management for GraphQL
API Management for GraphQL
WSO2
 
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays
 
Modern Post-Exploitation Strategies - 44CON 2012
Modern Post-Exploitation Strategies - 44CON 2012
44CON
 
Containers at Netflx - An Evolving Story QConSF2015
Containers at Netflx - An Evolving Story QConSF2015
Sangeeta Narayanan
 
The Cloud Journey in an Enterprise - IDC Multicloud - Stockholm November 20, ...
The Cloud Journey in an Enterprise - IDC Multicloud - Stockholm November 20, ...
Anders Lundsgård
 
有 Firebase 就不用找後端工程師了 (誤)
有 Firebase 就不用找後端工程師了 (誤)
WANGCHOU LU
 
The Cloud journey in an Enterprise - Delivery of Things World - Berlin April ...
The Cloud journey in an Enterprise - Delivery of Things World - Berlin April ...
Anders Lundsgård
 
Lessons Learned from Revamping Our Doc Site
Lessons Learned from Revamping Our Doc Site
Pronovix
 
CICD Mule
CICD Mule
Naveen kumar Kavartapu
 
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
RapidValue
 

More Related Content

What's hot (20)

Leaping Forward: Finding The Future of Your API Docs
Leaping Forward: Finding The Future of Your API Docs
Pronovix
 
Advancing Your API Strategy in an Infrastructure World
Advancing Your API Strategy in an Infrastructure World
Pronovix
 
Avoiding the DevOps Tax
Avoiding the DevOps Tax
GitLab, Inc
 
apidays LIVE Paris 2021 - OpenAPI Generator - The Babel Fish of the API World...
apidays LIVE Paris 2021 - OpenAPI Generator - The Babel Fish of the API World...
apidays
 
Develop, deploy, and operate services at reddit scale oscon 2018
Develop, deploy, and operate services at reddit scale oscon 2018
Gregory Taylor
 
API SDK Development – Lessons Learned
API SDK Development – Lessons Learned
Pronovix
 
Kubernetes at Reddit: An Origin Story - KubeCon NA 2018
Kubernetes at Reddit: An Origin Story - KubeCon NA 2018
Gregory Taylor
 
apidays LIVE Paris 2021 - Building an Accessible API Spec with Traditional En...
apidays LIVE Paris 2021 - Building an Accessible API Spec with Traditional En...
apidays
 
API First Workflow: How could we have better API Docs through DevOps pipeline
API First Workflow: How could we have better API Docs through DevOps pipeline
Pronovix
 
apidays LIVE Paris 2021 - Automating API Documentation by Ajinkya Marudwar, G...
apidays LIVE Paris 2021 - Automating API Documentation by Ajinkya Marudwar, G...
apidays
 
[WSO2Con EU 2018] OpenAPI Specification 3 - The Evolution of Swagger
[WSO2Con EU 2018] OpenAPI Specification 3 - The Evolution of Swagger
WSO2
 
A Starters Guide to Building APIs with Javascript
A Starters Guide to Building APIs with Javascript
All Things Open
 
API Management for GraphQL
API Management for GraphQL
WSO2
 
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays
 
Modern Post-Exploitation Strategies - 44CON 2012
Modern Post-Exploitation Strategies - 44CON 2012
44CON
 
Containers at Netflx - An Evolving Story QConSF2015
Containers at Netflx - An Evolving Story QConSF2015
Sangeeta Narayanan
 
The Cloud Journey in an Enterprise - IDC Multicloud - Stockholm November 20, ...
The Cloud Journey in an Enterprise - IDC Multicloud - Stockholm November 20, ...
Anders Lundsgård
 
有 Firebase 就不用找後端工程師了 (誤)
有 Firebase 就不用找後端工程師了 (誤)
WANGCHOU LU
 
The Cloud journey in an Enterprise - Delivery of Things World - Berlin April ...
The Cloud journey in an Enterprise - Delivery of Things World - Berlin April ...
Anders Lundsgård
 
Lessons Learned from Revamping Our Doc Site
Lessons Learned from Revamping Our Doc Site
Pronovix
 
Leaping Forward: Finding The Future of Your API Docs
Leaping Forward: Finding The Future of Your API Docs
Pronovix
 
Advancing Your API Strategy in an Infrastructure World
Advancing Your API Strategy in an Infrastructure World
Pronovix
 
Avoiding the DevOps Tax
Avoiding the DevOps Tax
GitLab, Inc
 
apidays LIVE Paris 2021 - OpenAPI Generator - The Babel Fish of the API World...
apidays LIVE Paris 2021 - OpenAPI Generator - The Babel Fish of the API World...
apidays
 
Develop, deploy, and operate services at reddit scale oscon 2018
Develop, deploy, and operate services at reddit scale oscon 2018
Gregory Taylor
 
API SDK Development – Lessons Learned
API SDK Development – Lessons Learned
Pronovix
 
Kubernetes at Reddit: An Origin Story - KubeCon NA 2018
Kubernetes at Reddit: An Origin Story - KubeCon NA 2018
Gregory Taylor
 
apidays LIVE Paris 2021 - Building an Accessible API Spec with Traditional En...
apidays LIVE Paris 2021 - Building an Accessible API Spec with Traditional En...
apidays
 
API First Workflow: How could we have better API Docs through DevOps pipeline
API First Workflow: How could we have better API Docs through DevOps pipeline
Pronovix
 
apidays LIVE Paris 2021 - Automating API Documentation by Ajinkya Marudwar, G...
apidays LIVE Paris 2021 - Automating API Documentation by Ajinkya Marudwar, G...
apidays
 
[WSO2Con EU 2018] OpenAPI Specification 3 - The Evolution of Swagger
[WSO2Con EU 2018] OpenAPI Specification 3 - The Evolution of Swagger
WSO2
 
A Starters Guide to Building APIs with Javascript
A Starters Guide to Building APIs with Javascript
All Things Open
 
API Management for GraphQL
API Management for GraphQL
WSO2
 
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays
 
Modern Post-Exploitation Strategies - 44CON 2012
Modern Post-Exploitation Strategies - 44CON 2012
44CON
 
Containers at Netflx - An Evolving Story QConSF2015
Containers at Netflx - An Evolving Story QConSF2015
Sangeeta Narayanan
 
The Cloud Journey in an Enterprise - IDC Multicloud - Stockholm November 20, ...
The Cloud Journey in an Enterprise - IDC Multicloud - Stockholm November 20, ...
Anders Lundsgård
 
有 Firebase 就不用找後端工程師了 (誤)
有 Firebase 就不用找後端工程師了 (誤)
WANGCHOU LU
 
The Cloud journey in an Enterprise - Delivery of Things World - Berlin April ...
The Cloud journey in an Enterprise - Delivery of Things World - Berlin April ...
Anders Lundsgård
 
Lessons Learned from Revamping Our Doc Site
Lessons Learned from Revamping Our Doc Site
Pronovix
 

Similar to Continuous integration for Ruby on Rails (20)

CICD Mule
CICD Mule
Naveen kumar Kavartapu
 
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
RapidValue
 
Continuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applications
Sunil Dalal
 
gopaddle-meetup
gopaddle-meetup
Sujai Sivasamy
 
GCP Meetup #3 - Approaches to Cloud Native Architectures
GCP Meetup #3 - Approaches to Cloud Native Architectures
nine
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applications
Sunil Dalal
 
CICD Pipeline - AWS Azure
CICD Pipeline - AWS Azure
Ratan Das
 
Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CI
David Hahn
 
devops ppt for hjs jsdjhjd hsdbusinees.pptx
devops ppt for hjs jsdjhjd hsdbusinees.pptx
Deepakgupta273447
 
Point of View to Accelerate with dev ops
Point of View to Accelerate with dev ops
Sanjay B. Bhakta
 
Continuous delivery for Android
Continuous delivery for Android
Leena N
 
DevOps for AI Apps
DevOps for AI Apps
Richin Jain
 
Reducing DevOps Burden with Git-based CI/CD Pipelines for APIs
Reducing DevOps Burden with Git-based CI/CD Pipelines for APIs
WSO2
 
Containers 101 - CloudCamp London
Containers 101 - CloudCamp London
Ed Hoppitt
 
Software Security: In the World of Cloud & CI-CD
Software Security: In the World of Cloud & CI-CD
OWASP Delhi
 
Ciprian redinciuc continuous integration with jenkins for i os
Ciprian redinciuc continuous integration with jenkins for i os
Codecamp Romania
 
Continuos integration with Jenkins for iOS | SuperSpeakers@CodeCamp Iasi, 2014
Continuos integration with Jenkins for iOS | SuperSpeakers@CodeCamp Iasi, 2014
Endava
 
CI, CD -Tools to integrate without manual intervention
CI, CD -Tools to integrate without manual intervention
ajayrajaganeshkayala
 
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
QAware GmbH
 
Dev ops using Jenkins
Dev ops using Jenkins
Synergetics Learning and Cloud Consulting
 
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
RapidValue
 
Continuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applications
Sunil Dalal
 
GCP Meetup #3 - Approaches to Cloud Native Architectures
GCP Meetup #3 - Approaches to Cloud Native Architectures
nine
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applications
Sunil Dalal
 
CICD Pipeline - AWS Azure
CICD Pipeline - AWS Azure
Ratan Das
 
Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CI
David Hahn
 
devops ppt for hjs jsdjhjd hsdbusinees.pptx
devops ppt for hjs jsdjhjd hsdbusinees.pptx
Deepakgupta273447
 
Point of View to Accelerate with dev ops
Point of View to Accelerate with dev ops
Sanjay B. Bhakta
 
Continuous delivery for Android
Continuous delivery for Android
Leena N
 
DevOps for AI Apps
DevOps for AI Apps
Richin Jain
 
Reducing DevOps Burden with Git-based CI/CD Pipelines for APIs
Reducing DevOps Burden with Git-based CI/CD Pipelines for APIs
WSO2
 
Containers 101 - CloudCamp London
Containers 101 - CloudCamp London
Ed Hoppitt
 
Software Security: In the World of Cloud & CI-CD
Software Security: In the World of Cloud & CI-CD
OWASP Delhi
 
Ciprian redinciuc continuous integration with jenkins for i os
Ciprian redinciuc continuous integration with jenkins for i os
Codecamp Romania
 
Continuos integration with Jenkins for iOS | SuperSpeakers@CodeCamp Iasi, 2014
Continuos integration with Jenkins for iOS | SuperSpeakers@CodeCamp Iasi, 2014
Endava
 
CI, CD -Tools to integrate without manual intervention
CI, CD -Tools to integrate without manual intervention
ajayrajaganeshkayala
 
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
QAware GmbH
 
Ad

More from David Paluy (15)

Intro to Smart Contracts
Intro to Smart Contracts
David Paluy
 
Decentralizing Everything with Blockchain
Decentralizing Everything with Blockchain
David Paluy
 
Testing with Rspec 3
Testing with Rspec 3
David Paluy
 
Tdd - Test Driven Development
Tdd - Test Driven Development
David Paluy
 
Knowledge sharing at MESH
Knowledge sharing at MESH
David Paluy
 
Juicy Ruby 2.1
Juicy Ruby 2.1
David Paluy
 
The Secret: How Programmers Develop Code
The Secret: How Programmers Develop Code
David Paluy
 
Tools to help you understand other people's code
Tools to help you understand other people's code
David Paluy
 
Debugging and Profiling Rails Application
Debugging and Profiling Rails Application
David Paluy
 
Security on Rails
Security on Rails
David Paluy
 
Ruby On Rails coding conventions, standards and best practices
Ruby On Rails coding conventions, standards and best practices
David Paluy
 
Git flow Introduction
Git flow Introduction
David Paluy
 
Faster on Rails
Faster on Rails
David Paluy
 
Howto prepare fund raising presentation
Howto prepare fund raising presentation
David Paluy
 
Test driven-development
Test driven-development
David Paluy
 
Intro to Smart Contracts
Intro to Smart Contracts
David Paluy
 
Decentralizing Everything with Blockchain
Decentralizing Everything with Blockchain
David Paluy
 
Testing with Rspec 3
Testing with Rspec 3
David Paluy
 
Tdd - Test Driven Development
Tdd - Test Driven Development
David Paluy
 
Knowledge sharing at MESH
Knowledge sharing at MESH
David Paluy
 
The Secret: How Programmers Develop Code
The Secret: How Programmers Develop Code
David Paluy
 
Tools to help you understand other people's code
Tools to help you understand other people's code
David Paluy
 
Debugging and Profiling Rails Application
Debugging and Profiling Rails Application
David Paluy
 
Security on Rails
Security on Rails
David Paluy
 
Ruby On Rails coding conventions, standards and best practices
Ruby On Rails coding conventions, standards and best practices
David Paluy
 
Git flow Introduction
Git flow Introduction
David Paluy
 
Howto prepare fund raising presentation
Howto prepare fund raising presentation
David Paluy
 
Test driven-development
Test driven-development
David Paluy
 
Ad

Recently uploaded (20)

Best MLM Compensation Plans for Network Marketing Success in 2025
Best MLM Compensation Plans for Network Marketing Success in 2025
LETSCMS Pvt. Ltd.
 
Complete WordPress Programming Guidance Book
Complete WordPress Programming Guidance Book
Shabista Imam
 
Test Case Design Techniques – Practical Examples & Best Practices in Software...
Test Case Design Techniques – Practical Examples & Best Practices in Software...
Muhammad Fahad Bashir
 
Humans vs AI Call Agents - Qcall.ai's Special Report
Humans vs AI Call Agents - Qcall.ai's Special Report
Udit Goenka
 
Automated Testing and Safety Analysis of Deep Neural Networks
Automated Testing and Safety Analysis of Deep Neural Networks
Lionel Briand
 
Simplify Task, Team, and Project Management with Orangescrum Work
Simplify Task, Team, and Project Management with Orangescrum Work
Orangescrum
 
Advance Doctor Appointment Booking App With Online Payment
Advance Doctor Appointment Booking App With Online Payment
AxisTechnolabs
 
Top Time Tracking Solutions for Accountants
Top Time Tracking Solutions for Accountants
oliviareed320
 
Introduction to Agile Frameworks for Product Managers.pdf
Introduction to Agile Frameworks for Product Managers.pdf
Ali Vahed
 
Building Geospatial Data Warehouse for GIS by GIS with FME
Building Geospatial Data Warehouse for GIS by GIS with FME
Safe Software
 
HYBRIDIZATION OF ALKANES AND ALKENES ...
HYBRIDIZATION OF ALKANES AND ALKENES ...
karishmaduhijod1
 
Download Adobe Illustrator Crack free for Windows 2025?
Download Adobe Illustrator Crack free for Windows 2025?
grete1122g
 
Why Every Growing Business Needs a Staff Augmentation Company IN USA.pdf
Why Every Growing Business Needs a Staff Augmentation Company IN USA.pdf
mary rojas
 
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
pcprocore
 
Y - Recursion The Hard Way GopherCon EU 2025
Y - Recursion The Hard Way GopherCon EU 2025
Eleanor McHugh
 
Threat Modeling a Batch Job Framework - Teri Radichel - AWS re:Inforce 2025
Threat Modeling a Batch Job Framework - Teri Radichel - AWS re:Inforce 2025
2nd Sight Lab
 
arctitecture application system design os dsa
arctitecture application system design os dsa
za241967
 
ERP Systems in the UAE: Driving Business Transformation with Smart Solutions
ERP Systems in the UAE: Driving Business Transformation with Smart Solutions
dheeodoo
 
Decipher SEO Solutions for your startup needs.
Decipher SEO Solutions for your startup needs.
mathai2
 
Foundations of Marketo Engage - Programs, Campaigns & Beyond - June 2025
Foundations of Marketo Engage - Programs, Campaigns & Beyond - June 2025
BradBedford3
 
Best MLM Compensation Plans for Network Marketing Success in 2025
Best MLM Compensation Plans for Network Marketing Success in 2025
LETSCMS Pvt. Ltd.
 
Complete WordPress Programming Guidance Book
Complete WordPress Programming Guidance Book
Shabista Imam
 
Test Case Design Techniques – Practical Examples & Best Practices in Software...
Test Case Design Techniques – Practical Examples & Best Practices in Software...
Muhammad Fahad Bashir
 
Humans vs AI Call Agents - Qcall.ai's Special Report
Humans vs AI Call Agents - Qcall.ai's Special Report
Udit Goenka
 
Automated Testing and Safety Analysis of Deep Neural Networks
Automated Testing and Safety Analysis of Deep Neural Networks
Lionel Briand
 
Simplify Task, Team, and Project Management with Orangescrum Work
Simplify Task, Team, and Project Management with Orangescrum Work
Orangescrum
 
Advance Doctor Appointment Booking App With Online Payment
Advance Doctor Appointment Booking App With Online Payment
AxisTechnolabs
 
Top Time Tracking Solutions for Accountants
Top Time Tracking Solutions for Accountants
oliviareed320
 
Introduction to Agile Frameworks for Product Managers.pdf
Introduction to Agile Frameworks for Product Managers.pdf
Ali Vahed
 
Building Geospatial Data Warehouse for GIS by GIS with FME
Building Geospatial Data Warehouse for GIS by GIS with FME
Safe Software
 
HYBRIDIZATION OF ALKANES AND ALKENES ...
HYBRIDIZATION OF ALKANES AND ALKENES ...
karishmaduhijod1
 
Download Adobe Illustrator Crack free for Windows 2025?
Download Adobe Illustrator Crack free for Windows 2025?
grete1122g
 
Why Every Growing Business Needs a Staff Augmentation Company IN USA.pdf
Why Every Growing Business Needs a Staff Augmentation Company IN USA.pdf
mary rojas
 
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
pcprocore
 
Y - Recursion The Hard Way GopherCon EU 2025
Y - Recursion The Hard Way GopherCon EU 2025
Eleanor McHugh
 
Threat Modeling a Batch Job Framework - Teri Radichel - AWS re:Inforce 2025
Threat Modeling a Batch Job Framework - Teri Radichel - AWS re:Inforce 2025
2nd Sight Lab
 
arctitecture application system design os dsa
arctitecture application system design os dsa
za241967
 
ERP Systems in the UAE: Driving Business Transformation with Smart Solutions
ERP Systems in the UAE: Driving Business Transformation with Smart Solutions
dheeodoo
 
Decipher SEO Solutions for your startup needs.
Decipher SEO Solutions for your startup needs.
mathai2
 
Foundations of Marketo Engage - Programs, Campaigns & Beyond - June 2025
Foundations of Marketo Engage - Programs, Campaigns & Beyond - June 2025
BradBedford3
 

Continuous integration for Ruby on Rails