SlideShare a Scribd company logo
T
Travis CI
A Distributed Build Platform for Open Source
Continuous Integration is a software
development practice where members
    of a team integrate their work
frequently ... verified by an automated
    build (including test) to detect
           integration errors
                         - Martin Fowler
Travis CI is ...

• An Open Source
• Distributed
• Build System
• for the Open Source Community
Open Source ...
• Brain child of Sven Fuchs
 • travis.heroku.com (December, 2010)
• Travis-CI (and subprojects) are open source
 • github.com/travis-ci
 • 20 members and growing
• Considered “Alpha” (but very functional)
Distributed ...
        allows users to contribute build
      capacities by connecting a VM that
    runs a build agent somewhere on their
               underused servers


• Travis-CI -- the web application runs on Heroku
• But Travis workers,VMs that run the builds, are
  contributed by users
Build System ...
Build System ...

           repo

git push
Build System ...

           repo
                         travis
git push          hook
Build System ...

           repo
                         travis
git push          hook
                                  tasks
Build System ...

           repo
                         travis
git push          hook                    task
                                  tasks
Build System ...
                         git clone

           repo
                           travis
git push          hook                       task
                                     tasks
Build System ...
                         git clone

           repo                      status
                           travis
git push          hook                         task
                                       tasks
Build System ...
                         git clone

           repo                      status
                           travis
git push          hook                         task
                                       tasks
Build System ...
                         git clone

           repo                      status
                           travis
git push          hook                         task
                                       tasks
                          updates
Open Source Community
 • Travis CI is free to use for any public
   GitHub project
 • Travis is great for any Ruby project
But Can Also Build ...


   clojure
Getting Started ...

1. Sign up with Travis CI using
   your GitHub account
2. Enable the repositories that
   you want Travis to build
git push
A Travis Worker Builds
    Your Project...

$ rvm use 1.8.7

$ git clone git://github.com/YOUR/PROJECT.git

$ bundle install --path vendor/bundle

$ bundle exec rake
Announce Your Build
      Status!

• Status Images
• E-mail Notifications
• IRC Notifications
E-mail Notification ...
Build Matrix ...
• Defined by your .travis.yml
• Configure ...
 • Ruby versions (rvm)
 • Custom Gemfiles
 • Environment Variables
• Script to run
Jsonify .travis.yml
rvm:
  - 1.9.3
  - 1.9.2
  - 1.8.7
  - jruby
  - rbx-2.0
env:
  - RAILS_VERSION='~>3.0.0'
  - RAILS_VERSION='>=3.1.0'
Jsonify .travis.yml
                    10
rvm:
  - 1.9.3
  - 1.9.2
                        Builds
  - 1.8.7
  - jruby
  - rbx-2.0
env:
  - RAILS_VERSION='~>3.0.0'
  - RAILS_VERSION='>=3.1.0'
But Wait ...
          There’s More!
• before / after scripts
• matrix exclusion
  matrix: { exclusion: [{ rvm: 1.8.7, env:RG=1.3.6 }]}


• specify branches to build (white/blacklist)
  # blacklist
  branches:
    except:
      - legacy
      - experimental
Built-in DB Support
        SQLite3
                           MySQL
PostgreSQL
               MongoDB
    All Available with no extra setup required
What about ? ? ?
What about ? ? ?
 Redis
             sphinx   memcached

          CouchDB python
OpenJDK
                 ImageMagick
 Selenium     Riak
Vanity .travis.yml
rvm:
 - 1.8.7
 - 1.9.2
gemfile:
 - Gemfile
env:
 - DB=mongodb
 - DB=redis
 - DB=mysql
before_script:
 - "mysql -e 'create database vanity_test;' >/dev/null"
The “Hosh” Factor
The “Hosh” Factor
What metrics do you use when evaluating
       gems and applications?
The “Hosh” Factor
What metrics do you use when evaluating
       gems and applications?

• GitHub watchers and forks
• RubyGems.org download count
• Recent commit activity
• Travis Build Status and History
In the works ...
  • RabbitMQ replacing Resque
  • SproutCore replacing Backbone.js
  • Travis API
  • Private Repos*
               Sven’s Mantra
“Do the simplest thing possible then Improve”
Interesting Svenisms ...

•   simple_states
•   data_migrations
•   hashr
Get Involved ...

1. put your apps on Travis
2. about.travis-ci.org
3. #travis on freenode
Is This Travis ?
Travis the Tractor
Travis Bickle

More Related Content

What's hot

CI/CD Pipeline with Docker
CI/CD Pipeline with DockerCI/CD Pipeline with Docker
CI/CD Pipeline with Docker
kushalsingh007
 
Make It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version ControlMake It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version Control
indiver
 
(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines
Steffen Gebert
 
FOSDEM 2017: GitLab CI
FOSDEM 2017:  GitLab CIFOSDEM 2017:  GitLab CI
FOSDEM 2017: GitLab CI
OlinData
 
Jenkins Scriptler in 90mins
Jenkins Scriptler in 90minsJenkins Scriptler in 90mins
Jenkins Scriptler in 90mins
Larry Cai
 
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
Steffen Gebert
 
Using GitLab CI
Using GitLab CIUsing GitLab CI
Using GitLab CI
ColCh
 
Introducing "Tugbot" for Docker Containers
Introducing "Tugbot" for Docker ContainersIntroducing "Tugbot" for Docker Containers
Introducing "Tugbot" for Docker Containers
Neil Gehani
 
Tugbot - Testing Framework for Docker Containers
Tugbot - Testing Framework for Docker ContainersTugbot - Testing Framework for Docker Containers
Tugbot - Testing Framework for Docker Containers
Neil Gehani
 
Workflows using Git GitHub | Edureka
Workflows using Git GitHub | EdurekaWorkflows using Git GitHub | Edureka
Workflows using Git GitHub | Edureka
Edureka!
 
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as code
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as codeVoxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as code
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as code
Damien Duportal
 
2015 05-06-elias weingaertner-docker-intro
2015 05-06-elias weingaertner-docker-intro2015 05-06-elias weingaertner-docker-intro
2015 05-06-elias weingaertner-docker-intro
Haufe-Lexware GmbH & Co KG
 
CI with Gitlab & Docker
CI with Gitlab & DockerCI with Gitlab & Docker
CI with Gitlab & Docker
Joerg Henning
 
Continuous Integration With Jenkins Docker SQL Server
Continuous Integration With Jenkins Docker SQL ServerContinuous Integration With Jenkins Docker SQL Server
Continuous Integration With Jenkins Docker SQL Server
Chris Adkin
 
Grooving with Jenkins
Grooving with JenkinsGrooving with Jenkins
Grooving with Jenkins
Anton Weiss
 
Codifying the Build and Release Process with a Jenkins Pipeline Shared Library
Codifying the Build and Release Process with a Jenkins Pipeline Shared LibraryCodifying the Build and Release Process with a Jenkins Pipeline Shared Library
Codifying the Build and Release Process with a Jenkins Pipeline Shared Library
Alvin Huang
 
7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users
Jules Pierre-Louis
 
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins PipelinesAn Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
Steffen Gebert
 
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013 .Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
Tikal Knowledge
 
Jenkins days workshop pipelines - Eric Long
Jenkins days workshop  pipelines - Eric LongJenkins days workshop  pipelines - Eric Long
Jenkins days workshop pipelines - Eric Long
ericlongtx
 

What's hot (20)

CI/CD Pipeline with Docker
CI/CD Pipeline with DockerCI/CD Pipeline with Docker
CI/CD Pipeline with Docker
 
Make It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version ControlMake It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version Control
 
(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines
 
FOSDEM 2017: GitLab CI
FOSDEM 2017:  GitLab CIFOSDEM 2017:  GitLab CI
FOSDEM 2017: GitLab CI
 
Jenkins Scriptler in 90mins
Jenkins Scriptler in 90minsJenkins Scriptler in 90mins
Jenkins Scriptler in 90mins
 
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
 
Using GitLab CI
Using GitLab CIUsing GitLab CI
Using GitLab CI
 
Introducing "Tugbot" for Docker Containers
Introducing "Tugbot" for Docker ContainersIntroducing "Tugbot" for Docker Containers
Introducing "Tugbot" for Docker Containers
 
Tugbot - Testing Framework for Docker Containers
Tugbot - Testing Framework for Docker ContainersTugbot - Testing Framework for Docker Containers
Tugbot - Testing Framework for Docker Containers
 
Workflows using Git GitHub | Edureka
Workflows using Git GitHub | EdurekaWorkflows using Git GitHub | Edureka
Workflows using Git GitHub | Edureka
 
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as code
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as codeVoxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as code
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as code
 
2015 05-06-elias weingaertner-docker-intro
2015 05-06-elias weingaertner-docker-intro2015 05-06-elias weingaertner-docker-intro
2015 05-06-elias weingaertner-docker-intro
 
CI with Gitlab & Docker
CI with Gitlab & DockerCI with Gitlab & Docker
CI with Gitlab & Docker
 
Continuous Integration With Jenkins Docker SQL Server
Continuous Integration With Jenkins Docker SQL ServerContinuous Integration With Jenkins Docker SQL Server
Continuous Integration With Jenkins Docker SQL Server
 
Grooving with Jenkins
Grooving with JenkinsGrooving with Jenkins
Grooving with Jenkins
 
Codifying the Build and Release Process with a Jenkins Pipeline Shared Library
Codifying the Build and Release Process with a Jenkins Pipeline Shared LibraryCodifying the Build and Release Process with a Jenkins Pipeline Shared Library
Codifying the Build and Release Process with a Jenkins Pipeline Shared Library
 
7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users
 
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins PipelinesAn Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
 
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013 .Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
 
Jenkins days workshop pipelines - Eric Long
Jenkins days workshop  pipelines - Eric LongJenkins days workshop  pipelines - Eric Long
Jenkins days workshop pipelines - Eric Long
 

Similar to Travis CI

Drupal & Continous Integration - SF State Study Case
Drupal & Continous Integration - SF State Study CaseDrupal & Continous Integration - SF State Study Case
Drupal & Continous Integration - SF State Study Case
Emanuele Quinto
 
Openstack Third-Party CI and the review of a few Openstack Infrastructure pro...
Openstack Third-Party CI and the review of a few Openstack Infrastructure pro...Openstack Third-Party CI and the review of a few Openstack Infrastructure pro...
Openstack Third-Party CI and the review of a few Openstack Infrastructure pro...
Evgeny Antyshev
 
Web Developing In Search
Web Developing In SearchWeb Developing In Search
Web Developing In SearchFrank Xu
 
The journey to GitOps
The journey to GitOpsThe journey to GitOps
The journey to GitOps
Nicola Baldi
 
Git Going with DVCS v1.6.0
Git Going with DVCS v1.6.0Git Going with DVCS v1.6.0
Git Going with DVCS v1.6.0
Matthew McCullough
 
Clearly, I Have Made Some Bad Decisions
Clearly, I Have Made Some Bad DecisionsClearly, I Have Made Some Bad Decisions
Clearly, I Have Made Some Bad Decisions
Jonathan Hitchcock
 
Ruby Under The Hood
Ruby Under The HoodRuby Under The Hood
Ruby Under The Hood
craig lehmann
 
インフラエンジニアのためのGit入門
インフラエンジニアのためのGit入門インフラエンジニアのためのGit入門
インフラエンジニアのためのGit入門
Kouhei Maeda
 
Building A Distributed Build System at Google Scale (StrangeLoop 2016)
Building A Distributed Build System at Google Scale (StrangeLoop 2016)Building A Distributed Build System at Google Scale (StrangeLoop 2016)
Building A Distributed Build System at Google Scale (StrangeLoop 2016)
Aysylu Greenberg
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java bin
Olve Hansen
 
Git Heaven with Wakanda
Git Heaven with WakandaGit Heaven with Wakanda
Git Heaven with Wakanda
Juergen Fesslmeier
 
Kubernetes deep dive - - Huawei 2015-10
Kubernetes deep dive - - Huawei 2015-10Kubernetes deep dive - - Huawei 2015-10
Kubernetes deep dive - - Huawei 2015-10
Vishnu Kannan
 
git and github
git and githubgit and github
git and github
Darren Oakley
 
Guides To Analyzing WebKit Performance
Guides To Analyzing WebKit PerformanceGuides To Analyzing WebKit Performance
Guides To Analyzing WebKit Performance
National Cheng Kung University
 
Version Control Systems -- Git -- Part I
Version Control Systems -- Git -- Part IVersion Control Systems -- Git -- Part I
Version Control Systems -- Git -- Part I
Sergey Aganezov
 
Virtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profitVirtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profitAndreas Heim
 
OpenWhisk Go Runtime
OpenWhisk Go RuntimeOpenWhisk Go Runtime
OpenWhisk Go Runtime
Michele Sciabarrà
 
Dcjq node.js presentation
Dcjq node.js presentationDcjq node.js presentation
Dcjq node.js presentation
async_io
 
How to distribute Ruby to the world
How to distribute Ruby to the worldHow to distribute Ruby to the world
How to distribute Ruby to the world
Hiroshi SHIBATA
 

Similar to Travis CI (20)

Drupal & Continous Integration - SF State Study Case
Drupal & Continous Integration - SF State Study CaseDrupal & Continous Integration - SF State Study Case
Drupal & Continous Integration - SF State Study Case
 
Openstack Third-Party CI and the review of a few Openstack Infrastructure pro...
Openstack Third-Party CI and the review of a few Openstack Infrastructure pro...Openstack Third-Party CI and the review of a few Openstack Infrastructure pro...
Openstack Third-Party CI and the review of a few Openstack Infrastructure pro...
 
Web Developing In Search
Web Developing In SearchWeb Developing In Search
Web Developing In Search
 
The journey to GitOps
The journey to GitOpsThe journey to GitOps
The journey to GitOps
 
Git Going with DVCS v1.6.0
Git Going with DVCS v1.6.0Git Going with DVCS v1.6.0
Git Going with DVCS v1.6.0
 
Clearly, I Have Made Some Bad Decisions
Clearly, I Have Made Some Bad DecisionsClearly, I Have Made Some Bad Decisions
Clearly, I Have Made Some Bad Decisions
 
Ruby Under The Hood
Ruby Under The HoodRuby Under The Hood
Ruby Under The Hood
 
インフラエンジニアのためのGit入門
インフラエンジニアのためのGit入門インフラエンジニアのためのGit入門
インフラエンジニアのためのGit入門
 
Git
GitGit
Git
 
Building A Distributed Build System at Google Scale (StrangeLoop 2016)
Building A Distributed Build System at Google Scale (StrangeLoop 2016)Building A Distributed Build System at Google Scale (StrangeLoop 2016)
Building A Distributed Build System at Google Scale (StrangeLoop 2016)
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java bin
 
Git Heaven with Wakanda
Git Heaven with WakandaGit Heaven with Wakanda
Git Heaven with Wakanda
 
Kubernetes deep dive - - Huawei 2015-10
Kubernetes deep dive - - Huawei 2015-10Kubernetes deep dive - - Huawei 2015-10
Kubernetes deep dive - - Huawei 2015-10
 
git and github
git and githubgit and github
git and github
 
Guides To Analyzing WebKit Performance
Guides To Analyzing WebKit PerformanceGuides To Analyzing WebKit Performance
Guides To Analyzing WebKit Performance
 
Version Control Systems -- Git -- Part I
Version Control Systems -- Git -- Part IVersion Control Systems -- Git -- Part I
Version Control Systems -- Git -- Part I
 
Virtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profitVirtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profit
 
OpenWhisk Go Runtime
OpenWhisk Go RuntimeOpenWhisk Go Runtime
OpenWhisk Go Runtime
 
Dcjq node.js presentation
Dcjq node.js presentationDcjq node.js presentation
Dcjq node.js presentation
 
How to distribute Ruby to the world
How to distribute Ruby to the worldHow to distribute Ruby to the world
How to distribute Ruby to the world
 

Recently uploaded

Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 

Recently uploaded (20)

Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 

Travis CI

  • 1. T Travis CI A Distributed Build Platform for Open Source
  • 2. Continuous Integration is a software development practice where members of a team integrate their work frequently ... verified by an automated build (including test) to detect integration errors - Martin Fowler
  • 3. Travis CI is ... • An Open Source • Distributed • Build System • for the Open Source Community
  • 4. Open Source ... • Brain child of Sven Fuchs • travis.heroku.com (December, 2010) • Travis-CI (and subprojects) are open source • github.com/travis-ci • 20 members and growing • Considered “Alpha” (but very functional)
  • 5. Distributed ... allows users to contribute build capacities by connecting a VM that runs a build agent somewhere on their underused servers • Travis-CI -- the web application runs on Heroku • But Travis workers,VMs that run the builds, are contributed by users
  • 7. Build System ... repo git push
  • 8. Build System ... repo travis git push hook
  • 9. Build System ... repo travis git push hook tasks
  • 10. Build System ... repo travis git push hook task tasks
  • 11. Build System ... git clone repo travis git push hook task tasks
  • 12. Build System ... git clone repo status travis git push hook task tasks
  • 13. Build System ... git clone repo status travis git push hook task tasks
  • 14. Build System ... git clone repo status travis git push hook task tasks updates
  • 15. Open Source Community • Travis CI is free to use for any public GitHub project • Travis is great for any Ruby project
  • 16. But Can Also Build ... clojure
  • 17. Getting Started ... 1. Sign up with Travis CI using your GitHub account 2. Enable the repositories that you want Travis to build
  • 18.
  • 20. A Travis Worker Builds Your Project... $ rvm use 1.8.7 $ git clone git://github.com/YOUR/PROJECT.git $ bundle install --path vendor/bundle $ bundle exec rake
  • 21.
  • 22.
  • 23. Announce Your Build Status! • Status Images • E-mail Notifications • IRC Notifications
  • 25. Build Matrix ... • Defined by your .travis.yml • Configure ... • Ruby versions (rvm) • Custom Gemfiles • Environment Variables • Script to run
  • 26. Jsonify .travis.yml rvm:   - 1.9.3   - 1.9.2   - 1.8.7   - jruby   - rbx-2.0 env:   - RAILS_VERSION='~>3.0.0'   - RAILS_VERSION='>=3.1.0'
  • 27. Jsonify .travis.yml 10 rvm:   - 1.9.3   - 1.9.2 Builds   - 1.8.7   - jruby   - rbx-2.0 env:   - RAILS_VERSION='~>3.0.0'   - RAILS_VERSION='>=3.1.0'
  • 28. But Wait ... There’s More! • before / after scripts • matrix exclusion matrix: { exclusion: [{ rvm: 1.8.7, env:RG=1.3.6 }]} • specify branches to build (white/blacklist) # blacklist branches: except: - legacy - experimental
  • 29. Built-in DB Support SQLite3 MySQL PostgreSQL MongoDB All Available with no extra setup required
  • 31. What about ? ? ? Redis sphinx memcached CouchDB python OpenJDK ImageMagick Selenium Riak
  • 32. Vanity .travis.yml rvm: - 1.8.7 - 1.9.2 gemfile: - Gemfile env: - DB=mongodb - DB=redis - DB=mysql before_script: - "mysql -e 'create database vanity_test;' >/dev/null"
  • 33.
  • 35. The “Hosh” Factor What metrics do you use when evaluating gems and applications?
  • 36. The “Hosh” Factor What metrics do you use when evaluating gems and applications? • GitHub watchers and forks • RubyGems.org download count • Recent commit activity • Travis Build Status and History
  • 37. In the works ... • RabbitMQ replacing Resque • SproutCore replacing Backbone.js • Travis API • Private Repos* Sven’s Mantra “Do the simplest thing possible then Improve”
  • 38. Interesting Svenisms ... • simple_states • data_migrations • hashr
  • 39. Get Involved ... 1. put your apps on Travis 2. about.travis-ci.org 3. #travis on freenode

Editor's Notes

  1. \n
  2. What is CI? It’s just not for teams. Integration can mean external services and platforms and runtimes.\n
  3. \n
  4. Sven Fuchs - i18n, Globalize3, ... \n
  5. Widespread distribution is still WIP\n
  6. Message Que originally Resque; migrating to Rabbit MQ (AMQP)\nBrowser app is currently Backbone.js; migrating to SproutCore\n
  7. Message Que originally Resque; migrating to Rabbit MQ (AMQP)\nBrowser app is currently Backbone.js; migrating to SproutCore\n
  8. Message Que originally Resque; migrating to Rabbit MQ (AMQP)\nBrowser app is currently Backbone.js; migrating to SproutCore\n
  9. Message Que originally Resque; migrating to Rabbit MQ (AMQP)\nBrowser app is currently Backbone.js; migrating to SproutCore\n
  10. Message Que originally Resque; migrating to Rabbit MQ (AMQP)\nBrowser app is currently Backbone.js; migrating to SproutCore\n
  11. Message Que originally Resque; migrating to Rabbit MQ (AMQP)\nBrowser app is currently Backbone.js; migrating to SproutCore\n
  12. Message Que originally Resque; migrating to Rabbit MQ (AMQP)\nBrowser app is currently Backbone.js; migrating to SproutCore\n
  13. Message Que originally Resque; migrating to Rabbit MQ (AMQP)\nBrowser app is currently Backbone.js; migrating to SproutCore\n
  14. Rails / RubyGems / Sinatra etc.\n
  15. Clojure / Erlang / NodeJS / Scala\n
  16. \n
  17. Organization Repositories are supported ... you just have to enable the service hook from GitHub\nWHAT NEXT?!\n
  18. \n
  19. Default build sequence w/o custom config\n
  20. \n
  21. \n
  22. Campfire is in progress\n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. No practical limitations; defined by Travis Worker Chef Cookbooks\n
  29. No practical limitations; defined by Travis Worker Chef Cookbooks\n
  30. No practical limitations; defined by Travis Worker Chef Cookbooks\n
  31. No practical limitations; defined by Travis Worker Chef Cookbooks\n
  32. No practical limitations; defined by Travis Worker Chef Cookbooks\n
  33. No practical limitations; defined by Travis Worker Chef Cookbooks\n
  34. No practical limitations; defined by Travis Worker Chef Cookbooks\n
  35. No practical limitations; defined by Travis Worker Chef Cookbooks\n
  36. No practical limitations; defined by Travis Worker Chef Cookbooks\n
  37. \n
  38. \n
  39. \n
  40. \n
  41. First 3 items are actively being worked on\nPrivate repo support is obvious enhancement; but focus is on community support at this point\n
  42. simple_states: a state machine (akin to state_machine and aasm)\ndata_migrations: DSL for Rails migrations with data changes (e.g. in prod environments)\nhashr: makes working with nested hashes easier\n
  43. \n
  44. \n
  45. \n
  46. I like to think of this Travis ... getting in your face when your app won’t build!\n