SlideShare a Scribd company logo
Github,
Travis­CI
& Perl
Dave Cross
dave@perlhacks.com
@davorg
Github is Awesome
Github is Awesome Because
Github is Awesome Because
● Git
Github is Awesome Because
● Git
● Social coding
Github is Awesome Because
● Git
● Social coding
● Free
Github is Awesome Because
● Git
● Social coding
● Free
● Octocat
Github is Awesome Because
API
APIs are Awesome
APIs allow you to 
add cool features to 
Github
APIs are Awesome
APIs allow other 
people to add cool 
features to Github
APIs are Awesome
APIs allow other 
people to add cool 
features to Github
APIs are Awesome
APIs allow whole 
ecosystem of cool 
new toys
Continuous Integration
Continuous Integration
● Source code control is awesome
Continuous Integration
● Source code control is awesome
● Units tests are awesome
Continuous Integration
● Source code control is awesome
● Units tests are awesome
● Continuous integration is running 
unit tests whenever you commit code
Continuous Integration
● Source code control is awesome
● Units tests are awesome
● Continuous integration is running 
unit tests whenever you commit code
● Which is awesome
Travis­CI is Awesome
Travis­CI is Awesome
● Travis­CI monitors your Github projects
Travis­CI is Awesome
● Travis­CI monitors your Github projects
● Watches for commits
Travis­CI is Awesome
● Travis­CI monitors your Github projects
● Watches for commits
● Runs unit tests
Travis­CI is Awesome
● Travis­CI monitors your Github projects
● Watches for commits
● Runs unit tests
● Reports success or failure
Travis­CI is Awesome
● Travis­CI monitors your Github projects
● Watches for commits
● Runs unit tests
● Reports success or failure
● Which is awesome
Travis­CI & Perl
● Easy to enable Travis­CI for Perl projects
Travis­CI & Perl
● Easy to enable Travis­CI for Perl projects
● Just add a file to your repos
Travis­CI & Perl
● Easy to enable Travis­CI for Perl projects
● Just add a file to your repos
● .travis.yml
Travis­CI & Perl
● Easy to enable Travis­CI for Perl projects
● Just add a file to your repos
● .travis.yml
● Sign up with Travis
Travis­CI & Perl
● Easy to enable Travis­CI for Perl projects
● Just add a file to your repos
● .travis.yml
● Sign up with Travis
● Activate project
.travis.yml
language: perl
perl:
  ­ "5.18"
  ­ "5.16"
  ­ "5.14"
(Sidebar)
● No Perl 5.20 support yet
● Planned but not implemented
● There is a workaround
● See http://mgnm.at/travis520
Sign Up With Travis­CI
Sign Up With Travis­CI
● http://travis­ci.org/
Sign Up With Travis­CI
● http://travis­ci.org/
● Sign in with your Github account
Sign Up With Travis­CI
Sign Up With Travis­CI
Integrating Continuously
● Now you're set up
Integrating Continuously
● Now you're set up
● Commit a change to your repository
Integrating Continuously
● Now you're set up
● Commit a change to your repository
● And wait
Integrating Continuously
● Now you're set up
● Commit a change to your repository
● And wait
● ...
Build Results
Build Results
Build Results
Build Results
Build Results
Build Results
Badges
Badges
Badges
Badges
More Complex Stuff
● That's all very easy
More Complex Stuff
● That's all very easy
● Not all code is that simple
More Complex Stuff
● That's all very easy
● Not all code is that simple
● Can we do more?
More Complex Stuff
● That's all very easy
● Not all code is that simple
● Can we do more?
● Rhetorical question
Example: Adding Database
● A database is a common requirement
Example: Adding Database
● A database is a common requirement
● Include schema in repo
Example: Adding Database
● A database is a common requirement
● Include schema in repo
● Include data in repo
Example: Adding Database
● A database is a common requirement
● Include schema in repo
● Include data in repo
● Load database before testing
Example: Adding Database
● A database is a common requirement
● Include schema in repo
● Include data in repo
● Load database before testing
● “before_script” (in .travis.yml)
Example: Adding Database
before_script:
- mysql -e 'create database my_db;'
- mysql -D my_db < db/load_db.sql
Example: Connecting to Database
● Travis­CI sets up a database user
Example: Connecting to Database
● Travis­CI sets up a database user
● Called “travis”
Example: Connecting to Database
● Travis­CI sets up a database user
● Called “travis”
● No password
Example: Connecting to Database
● Travis­CI sets up a database user
● Called “travis”
● No password
● Use env variables
Example: Connecting to Database
● Travis­CI sets up a database user
● Called “travis”
● No password
● Use env variables
● “env” (in .travis.yml)
Example: Connecting to Database
env: MYAPP_DB_SERVER=localhost
MYAPP_DB_NAME=my_db
MYAPP_DB_USER=travis
MYAPP_DB_PASS=''
Example: Test Coverage
● Automatically run test coverage
Example: Test Coverage
● Automatically run test coverage
● http://coveralls.io/
Example: Test Coverage
● Automatically run test coverage
● http://coveralls.io/
● Add to .travis.yml
.travis.yml
install:
  cpanm ­­quiet –notest    
        Devel::Cover::Report::Coveralls
script:
  ­ PERL5OPT=­Mdevel::Cover=­coverage,statement, 
    branch,condition,path,subroutine prove ­lrsv t
  ­ cover
after_success:
  ­ cover ­report coveralls
See also
● http://mgnm.at/travis520
Example: Test Coverage
Example: Test Coverage
Example: Test Coverage
More and More
● Many more things are possible
More and More
● Many more things are possible
● Barely scratching the surface
More and More
● Many more things are possible
● Barely scratching the surface
● See http://docs.travis­ci.com/
More and More
● Many more things are possible
● Barely scratching the surface
● See http://docs.travis­ci.com/
● If you do something cool, please blog it
Summary
Summary
● Github is awesome
Summary
● Github is awesome
● Unit tests are awesome
Summary
● Github is awesome
● Unit tests are awesome
● Continuous integration is awesome
Summary
● Github is awesome
● Unit tests are awesome
● Continuous integration is awesome
● Travis­CI is awesome
Summarised Summary
Summarised Summary
● APIs are awesome
Summarised Summary
● APIs are awesome
● Other people are awesome
Questions?
Thank You
Dave Cross
dave@perlhacks.com
@davorg

More Related Content

What's hot (20)

PDF
TuleapCon 2019. Tuleap explained by the users
Tuleap
 
PDF
Increase the Velocity of Your Software Releases Using GitHub and DeployHub
DevOps.com
 
PDF
Paving roads
gilforcada
 
PDF
Git Branching for Agile Teams
Sven Peters
 
PPTX
GitLab 8.5 Highlights and Step-by-step tutorial
Heather McNamee
 
PDF
GitLab webcast - Release 8.4
GitLab, Inc
 
PDF
Managing releases effectively through git
Mohd Farid
 
PPTX
Zero-Downtime Gerrit Code Review Upgrade
Luca Milanesio
 
PPTX
Bringing Pull Request to Gerrit
Eryk Szymanski
 
PPTX
Is TDD dead or alive?
Luca Milanesio
 
PDF
Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...
Edureka!
 
PDF
TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...
Stefan Teixeira
 
PDF
TDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecer
Stefan Teixeira
 
PDF
Continuous Delivery for Mobile platforms (iOS and a bit of Android)
Rami Rantala
 
PPTX
Comparing Agile QA Approaches to End-to-End Testing
Katie Chin
 
PPTX
GitLab 8.6 - Release Webcast
GitLab, Inc
 
PDF
Collaborative Package Development in R
egoodwintx
 
PDF
True Git
colleenfry
 
PDF
Git Branching for Agile Teams
Atlassian
 
PDF
TDC 2016 Floripa - Testando APIs REST com Supertest e Promises
Stefan Teixeira
 
TuleapCon 2019. Tuleap explained by the users
Tuleap
 
Increase the Velocity of Your Software Releases Using GitHub and DeployHub
DevOps.com
 
Paving roads
gilforcada
 
Git Branching for Agile Teams
Sven Peters
 
GitLab 8.5 Highlights and Step-by-step tutorial
Heather McNamee
 
GitLab webcast - Release 8.4
GitLab, Inc
 
Managing releases effectively through git
Mohd Farid
 
Zero-Downtime Gerrit Code Review Upgrade
Luca Milanesio
 
Bringing Pull Request to Gerrit
Eryk Szymanski
 
Is TDD dead or alive?
Luca Milanesio
 
Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...
Edureka!
 
TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...
Stefan Teixeira
 
TDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecer
Stefan Teixeira
 
Continuous Delivery for Mobile platforms (iOS and a bit of Android)
Rami Rantala
 
Comparing Agile QA Approaches to End-to-End Testing
Katie Chin
 
GitLab 8.6 - Release Webcast
GitLab, Inc
 
Collaborative Package Development in R
egoodwintx
 
True Git
colleenfry
 
Git Branching for Agile Teams
Atlassian
 
TDC 2016 Floripa - Testando APIs REST com Supertest e Promises
Stefan Teixeira
 

Similar to Github, Travis-CI and Perl (20)

PDF
Webinar - Continuous Integration with GitLab
OlinData
 
PDF
Python to go
Weng Wei
 
PDF
Code review and automated testing for Puppet code
wzzrd
 
PDF
Introducing GitLab
Taisuke Inoue
 
PDF
Integrating continuous integration and deployment with GitHub’s API
🌯 Brian Douglas
 
PDF
Lightweight continuous delivery for small schools
Charles Fulton
 
PDF
Turbo boosting your python development
Nejc Zupan
 
PDF
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Vadym Kazulkin
 
PDF
Portable CI wGitLab and Github led by Gavin Pickin.pdf
Ortus Solutions, Corp
 
PDF
Let's Create a GitHub Copilot Extension! - Nick Taylor, Pomerium
All Things Open
 
PDF
Git tech
Taj Nehme
 
PPTX
Ci of js and apex using jasmine, phantom js and drone io df14
Kevin Poorman
 
PPTX
TDD with Python and App Engine
Ricardo Bánffy
 
PDF
Building the Pipeline of My Dreams
Gene Gotimer
 
PDF
I Love APIs 2015 API Lab Design-first API Development Using Node and Swagger
Apigee | Google Cloud
 
PDF
Releaseflow: a healthy build and deploy process
Christopher Cundill
 
PDF
TRAVIS CI-KNOLX
Knoldus Inc.
 
PDF
What's a Pull Request (Contributing to Open Source) - Brad Wood
Ortus Solutions, Corp
 
PPTX
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
Simplilearn
 
PPTX
Pure APIs: Development workflows for successful API integrations
José Haro Peralta
 
Webinar - Continuous Integration with GitLab
OlinData
 
Python to go
Weng Wei
 
Code review and automated testing for Puppet code
wzzrd
 
Introducing GitLab
Taisuke Inoue
 
Integrating continuous integration and deployment with GitHub’s API
🌯 Brian Douglas
 
Lightweight continuous delivery for small schools
Charles Fulton
 
Turbo boosting your python development
Nejc Zupan
 
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Vadym Kazulkin
 
Portable CI wGitLab and Github led by Gavin Pickin.pdf
Ortus Solutions, Corp
 
Let's Create a GitHub Copilot Extension! - Nick Taylor, Pomerium
All Things Open
 
Git tech
Taj Nehme
 
Ci of js and apex using jasmine, phantom js and drone io df14
Kevin Poorman
 
TDD with Python and App Engine
Ricardo Bánffy
 
Building the Pipeline of My Dreams
Gene Gotimer
 
I Love APIs 2015 API Lab Design-first API Development Using Node and Swagger
Apigee | Google Cloud
 
Releaseflow: a healthy build and deploy process
Christopher Cundill
 
TRAVIS CI-KNOLX
Knoldus Inc.
 
What's a Pull Request (Contributing to Open Source) - Brad Wood
Ortus Solutions, Corp
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
Simplilearn
 
Pure APIs: Development workflows for successful API integrations
José Haro Peralta
 
Ad

More from Dave Cross (20)

PDF
Measuring the Quality of Your Perl Code
Dave Cross
 
PDF
Apollo 11 at 50 - A Simple Twitter Bot
Dave Cross
 
PDF
Monoliths, Balls of Mud and Silver Bullets
Dave Cross
 
PPTX
The Professional Programmer
Dave Cross
 
PDF
I'm A Republic (Honest!)
Dave Cross
 
PDF
Web Site Tune-Up - Improve Your Googlejuice
Dave Cross
 
PDF
Modern Perl Web Development with Dancer
Dave Cross
 
PDF
Freeing Tower Bridge
Dave Cross
 
PDF
Modern Perl Catch-Up
Dave Cross
 
PDF
Error(s) Free Programming
Dave Cross
 
PDF
Medium Perl
Dave Cross
 
PDF
Modern Web Development with Perl
Dave Cross
 
PDF
Improving Dev Assistant
Dave Cross
 
PDF
Conference Driven Publishing
Dave Cross
 
PDF
Conference Driven Publishing
Dave Cross
 
PDF
TwittElection
Dave Cross
 
PDF
Perl in the Internet of Things
Dave Cross
 
PDF
Return to the Kingdom of the Blind
Dave Cross
 
ODP
Object-Oriented Programming with Perl and Moose
Dave Cross
 
ODP
Database Programming with Perl and DBIx::Class
Dave Cross
 
Measuring the Quality of Your Perl Code
Dave Cross
 
Apollo 11 at 50 - A Simple Twitter Bot
Dave Cross
 
Monoliths, Balls of Mud and Silver Bullets
Dave Cross
 
The Professional Programmer
Dave Cross
 
I'm A Republic (Honest!)
Dave Cross
 
Web Site Tune-Up - Improve Your Googlejuice
Dave Cross
 
Modern Perl Web Development with Dancer
Dave Cross
 
Freeing Tower Bridge
Dave Cross
 
Modern Perl Catch-Up
Dave Cross
 
Error(s) Free Programming
Dave Cross
 
Medium Perl
Dave Cross
 
Modern Web Development with Perl
Dave Cross
 
Improving Dev Assistant
Dave Cross
 
Conference Driven Publishing
Dave Cross
 
Conference Driven Publishing
Dave Cross
 
TwittElection
Dave Cross
 
Perl in the Internet of Things
Dave Cross
 
Return to the Kingdom of the Blind
Dave Cross
 
Object-Oriented Programming with Perl and Moose
Dave Cross
 
Database Programming with Perl and DBIx::Class
Dave Cross
 
Ad

Recently uploaded (20)

PDF
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
PPTX
Finding Your License Details in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
AOMEI Partition Assistant Crack 10.8.2 + WinPE Free Downlaod New Version 2025
bashirkhan333g
 
PPTX
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
PDF
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
PDF
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
PPTX
Comprehensive Risk Assessment Module for Smarter Risk Management
EHA Soft Solutions
 
PDF
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
PPTX
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
PPTX
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
PDF
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
PPTX
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
Coefficient of Variance in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PPTX
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
PPTX
Tally software_Introduction_Presentation
AditiBansal54083
 
PDF
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
PDF
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
PDF
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
PDF
NEW-Viral>Wondershare Filmora 14.5.18.12900 Crack Free
sherryg1122g
 
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
Finding Your License Details in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
AOMEI Partition Assistant Crack 10.8.2 + WinPE Free Downlaod New Version 2025
bashirkhan333g
 
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
Comprehensive Risk Assessment Module for Smarter Risk Management
EHA Soft Solutions
 
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Coefficient of Variance in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
Tally software_Introduction_Presentation
AditiBansal54083
 
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
NEW-Viral>Wondershare Filmora 14.5.18.12900 Crack Free
sherryg1122g
 

Github, Travis-CI and Perl