SlideShare a Scribd company logo
Submit Search
Upload
Login
Signup
Github, Travis-CI and Perl
Report
Dave Cross
Follow
Owner / Senior Developer at Magnum Solutions Ltd
Jul. 25, 2014
•
0 likes
•
9,918 views
1
of
87
Github, Travis-CI and Perl
Jul. 25, 2014
•
0 likes
•
9,918 views
Download Now
Download to read offline
Report
Software
A quick introduction to using Github and Travis-CI to test Perl projects
Dave Cross
Follow
Owner / Senior Developer at Magnum Solutions Ltd
Recommended
Continuous Integration for Spark Apps by Sean McIntyre
Spark Summit
3.6K views
•
45 slides
6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...
Stefan Teixeira
258 views
•
76 slides
Flex and .NET Integration
icaraion
789 views
•
27 slides
Ágiles 2016 - Using open source tools to support Continuous Delivery
Stefan Teixeira
767 views
•
78 slides
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
Luca Milanesio
1.3K views
•
25 slides
TuleapCon 2019. DevOps in Tuleap
Tuleap
237 views
•
11 slides
More Related Content
What's hot
TuleapCon 2019. Tuleap explained by the users
Tuleap
274 views
•
38 slides
Increase the Velocity of Your Software Releases Using GitHub and DeployHub
DevOps.com
236 views
•
27 slides
Paving roads
gilforcada
842 views
•
23 slides
Git Branching for Agile Teams
Sven Peters
30.5K views
•
49 slides
GitLab 8.5 Highlights and Step-by-step tutorial
Heather McNamee
646 views
•
28 slides
GitLab webcast - Release 8.4
GitLab, Inc
378 views
•
17 slides
What's hot
(20)
TuleapCon 2019. Tuleap explained by the users
Tuleap
•
274 views
Increase the Velocity of Your Software Releases Using GitHub and DeployHub
DevOps.com
•
236 views
Paving roads
gilforcada
•
842 views
Git Branching for Agile Teams
Sven Peters
•
30.5K views
GitLab 8.5 Highlights and Step-by-step tutorial
Heather McNamee
•
646 views
GitLab webcast - Release 8.4
GitLab, Inc
•
378 views
Managing releases effectively through git
Mohd Farid
•
1.1K views
Zero-Downtime Gerrit Code Review Upgrade
Luca Milanesio
•
3.4K views
Bringing Pull Request to Gerrit
Eryk Szymanski
•
2.9K views
Is TDD dead or alive?
Luca Milanesio
•
2.6K views
Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...
Edureka!
•
906 views
TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...
Stefan Teixeira
•
719 views
TDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecer
Stefan Teixeira
•
974 views
Continuous Delivery for Mobile platforms (iOS and a bit of Android)
Rami Rantala
•
362 views
Comparing Agile QA Approaches to End-to-End Testing
Katie Chin
•
2.6K views
GitLab 8.6 - Release Webcast
GitLab, Inc
•
2.6K views
Collaborative Package Development in R
egoodwintx
•
337 views
True Git
colleenfry
•
1.3K views
Git Branching for Agile Teams
Atlassian
•
28.8K views
TDC 2016 Floripa - Testando APIs REST com Supertest e Promises
Stefan Teixeira
•
623 views
Similar to Github, Travis-CI and Perl
Webinar - Continuous Integration with GitLab
OlinData
1.1K views
•
16 slides
Python to go
Weng Wei
8.5K views
•
50 slides
Code review and automated testing for Puppet code
wzzrd
1.9K views
•
38 slides
Introducing GitLab
Taisuke Inoue
994 views
•
10 slides
Integrating continuous integration and deployment with GitHub’s API
🌯 Brian Douglas
280 views
•
86 slides
Lightweight continuous delivery for small schools
Charles Fulton
600 views
•
41 slides
Similar to Github, Travis-CI and Perl
(20)
Webinar - Continuous Integration with GitLab
OlinData
•
1.1K views
Python to go
Weng Wei
•
8.5K views
Code review and automated testing for Puppet code
wzzrd
•
1.9K views
Introducing GitLab
Taisuke Inoue
•
994 views
Integrating continuous integration and deployment with GitHub’s API
🌯 Brian Douglas
•
280 views
Lightweight continuous delivery for small schools
Charles Fulton
•
600 views
Turbo boosting your python development
Nejc Zupan
•
1.8K views
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Vadym Kazulkin
•
288 views
Git tech
Taj Nehme
•
33 views
Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018
Amazon Web Services
•
1.7K views
Ci of js and apex using jasmine, phantom js and drone io df14
Kevin Poorman
•
712 views
TDD with Python and App Engine
Ricardo Bánffy
•
1K views
Building the Pipeline of My Dreams
Gene Gotimer
•
179 views
I Love APIs 2015 API Lab Design-first API Development Using Node and Swagger
Apigee | Google Cloud
•
6.6K views
Releaseflow: a healthy build and deploy process
Christopher Cundill
•
203 views
TRAVIS CI-KNOLX
Knoldus Inc.
•
10 views
What's a Pull Request (Contributing to Open Source) - Brad Wood
Ortus Solutions, Corp
•
186 views
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
Simplilearn
•
2.1K views
Pure APIs: Development workflows for successful API integrations
José Haro Peralta
•
76 views
Continuous integration and delivery for java based web applications
Sunil Dalal
•
1.3K views
More from Dave Cross
Measuring the Quality of Your Perl Code
Dave Cross
869 views
•
103 slides
Apollo 11 at 50 - A Simple Twitter Bot
Dave Cross
594 views
•
47 slides
Monoliths, Balls of Mud and Silver Bullets
Dave Cross
583 views
•
74 slides
The Professional Programmer
Dave Cross
480 views
•
112 slides
I'm A Republic (Honest!)
Dave Cross
650 views
•
101 slides
Web Site Tune-Up - Improve Your Googlejuice
Dave Cross
1.1K views
•
113 slides
More from Dave Cross
(20)
Measuring the Quality of Your Perl Code
Dave Cross
•
869 views
Apollo 11 at 50 - A Simple Twitter Bot
Dave Cross
•
594 views
Monoliths, Balls of Mud and Silver Bullets
Dave Cross
•
583 views
The Professional Programmer
Dave Cross
•
480 views
I'm A Republic (Honest!)
Dave Cross
•
650 views
Web Site Tune-Up - Improve Your Googlejuice
Dave Cross
•
1.1K views
Modern Perl Web Development with Dancer
Dave Cross
•
2.4K views
Freeing Tower Bridge
Dave Cross
•
685 views
Modern Perl Catch-Up
Dave Cross
•
2.3K views
Error(s) Free Programming
Dave Cross
•
4.4K views
Medium Perl
Dave Cross
•
4.7K views
Modern Web Development with Perl
Dave Cross
•
15.8K views
Improving Dev Assistant
Dave Cross
•
10K views
Conference Driven Publishing
Dave Cross
•
10.1K views
Conference Driven Publishing
Dave Cross
•
3.2K views
TwittElection
Dave Cross
•
4.5K views
Perl in the Internet of Things
Dave Cross
•
4.6K views
Return to the Kingdom of the Blind
Dave Cross
•
8.8K views
Object-Oriented Programming with Perl and Moose
Dave Cross
•
10.6K views
Database Programming with Perl and DBIx::Class
Dave Cross
•
14.6K views
Recently uploaded
Deckible POV - Point of View
Nick Kellet
6 views
•
4 slides
The Never Landing Stream with HTAP and Streaming
Timothy Spann
167 views
•
39 slides
DevOps and SF.pdf
PatrickYANG48
5 views
•
28 slides
Improving User Experience with Our Website Feedback Tool
Not8 App
10 views
•
13 slides
KaseSync: Revolutionizing Support Experiences With Community-CRM Integration
Grazitti Interactive
6 views
•
7 slides
ROAD TO NODES - Intro to Neo4j + NeoDash.pdf
Neo4j
65 views
•
37 slides
Recently uploaded
(20)
Deckible POV - Point of View
Nick Kellet
•
6 views
The Never Landing Stream with HTAP and Streaming
Timothy Spann
•
167 views
DevOps and SF.pdf
PatrickYANG48
•
5 views
Improving User Experience with Our Website Feedback Tool
Not8 App
•
10 views
KaseSync: Revolutionizing Support Experiences With Community-CRM Integration
Grazitti Interactive
•
6 views
ROAD TO NODES - Intro to Neo4j + NeoDash.pdf
Neo4j
•
65 views
Empowering Advanced Users: Extending OutSystems UI Framework with Openness an...
Bernardo Cardoso
•
39 views
Climate Impact of Software Testing
Kari Kakkonen
•
54 views
BMC Software.pptx
Cloudaction
•
5 views
PostgreSQL Prologue
Md. Golam Hossain
•
12 views
Workflow Engines & Event Streaming Brokers - Can they work together? [Current...
Natan Silnitsky
•
105 views
Document WhatsApp Messaging
Geminate Consultancy Services
•
8 views
MicroK8s 1.28 - MicroCeph on MicroK8s.pdf
Konstantinos Tsakalozos
•
9 views
OutSystems Security Specialization - Study Help Deck
Fábio Godinho
•
47 views
Travel Software
SharmiMehta
•
6 views
Salesforce @AXA.pdf
PatrickYANG48
•
8 views
Our Story, Orange Nile
ManolodelaFuente1
•
7 views
Kubernetes with Cilium in AWS - Experience Report!
QAware GmbH
•
19 views
The art of AI Art
Dennis Vroegop
•
13 views
baklink.docx
AbdAsisHusainSalam
•
5 views
Github, Travis-CI and Perl
1.
Github, TravisCI & Perl Dave Cross dave@perlhacks.com @davorg
2.
Github is Awesome
3.
Github is Awesome Because
4.
Github is Awesome Because ● Git
5.
Github is Awesome Because ● Git ● Social coding
6.
Github is Awesome Because ● Git ● Social coding ●
Free
7.
Github is Awesome Because ● Git ● Social coding ●
Free ● Octocat
8.
Github is Awesome Because API
9.
APIs are Awesome APIs allow you to add cool features to Github
10.
APIs are Awesome APIs allow other people to add cool features to Github
11.
APIs are Awesome APIs allow other people to add cool features to Github
12.
APIs are Awesome APIs allow whole ecosystem of cool new toys
13.
Continuous Integration
14.
Continuous Integration ● Source code control is awesome
15.
Continuous Integration ● Source code control is awesome ● Units tests are awesome
16.
Continuous Integration ● Source code control is awesome ● Units tests are awesome ●
Continuous integration is running unit tests whenever you commit code
17.
Continuous Integration ● Source code control is awesome ● Units tests are awesome ●
Continuous integration is running unit tests whenever you commit code ● Which is awesome
18.
TravisCI is Awesome
19.
TravisCI is Awesome ● TravisCI monitors your Github projects
20.
TravisCI is Awesome ● TravisCI monitors your Github projects ● Watches for commits
21.
TravisCI is Awesome ● TravisCI monitors your Github projects ● Watches for commits ●
Runs unit tests
22.
TravisCI is Awesome ● TravisCI monitors your Github projects ● Watches for commits ●
Runs unit tests ● Reports success or failure
23.
TravisCI is Awesome ● TravisCI monitors your Github projects ● Watches for commits ●
Runs unit tests ● Reports success or failure ● Which is awesome
24.
TravisCI & Perl ● Easy to enable TravisCI for Perl projects
25.
TravisCI & Perl ● Easy to enable TravisCI for Perl projects ● Just add a file to your repos
26.
TravisCI & Perl ● Easy to enable TravisCI for Perl projects ● Just add a file to your repos ●
.travis.yml
27.
TravisCI & Perl ● Easy to enable TravisCI for Perl projects ● Just add a file to your repos ●
.travis.yml ● Sign up with Travis
28.
TravisCI & Perl ● Easy to enable TravisCI for Perl projects ● Just add a file to your repos ●
.travis.yml ● Sign up with Travis ● Activate project
29.
.travis.yml language: perl perl: "5.18" "5.16" "5.14"
30.
(Sidebar) ● No Perl 5.20 support yet ● Planned but not implemented ●
There is a workaround ● See http://mgnm.at/travis520
31.
Sign Up With TravisCI
32.
Sign Up With TravisCI ● http://travisci.org/
33.
Sign Up With TravisCI ● http://travisci.org/ ● Sign in with your Github account
34.
Sign Up With TravisCI
35.
Sign Up With TravisCI
36.
Integrating Continuously ● Now you're set up
37.
Integrating Continuously ● Now you're set up ● Commit a change to your repository
38.
Integrating Continuously ● Now you're set up ● Commit a change to your repository ●
And wait
39.
Integrating Continuously ● Now you're set up ● Commit a change to your repository ●
And wait ● ...
40.
Build Results
41.
Build Results
42.
Build Results
43.
Build Results
44.
Build Results
45.
Build Results
46.
Badges
47.
Badges
48.
Badges
49.
Badges
50.
More Complex Stuff ● That's all very easy
51.
More Complex Stuff ● That's all very easy ● Not all code is that simple
52.
More Complex Stuff ● That's all very easy ● Not all code is that simple ●
Can we do more?
53.
More Complex Stuff ● That's all very easy ● Not all code is that simple ●
Can we do more? ● Rhetorical question
54.
Example: Adding Database ● A database is a common requirement
55.
Example: Adding Database ● A database is a common requirement ● Include schema in repo
56.
Example: Adding Database ● A database is a common requirement ● Include schema in repo ●
Include data in repo
57.
Example: Adding Database ● A database is a common requirement ● Include schema in repo ●
Include data in repo ● Load database before testing
58.
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)
59.
Example: Adding Database before_script: - mysql -e
'create database my_db;' - mysql -D my_db < db/load_db.sql
60.
Example: Connecting to Database ● TravisCI sets up a database user
61.
Example: Connecting to Database ● TravisCI sets up a database user ● Called “travis”
62.
Example: Connecting to Database ● TravisCI sets up a database user ● Called “travis” ●
No password
63.
Example: Connecting to Database ● TravisCI sets up a database user ● Called “travis” ●
No password ● Use env variables
64.
Example: Connecting to Database ● TravisCI sets up a database user ● Called “travis” ●
No password ● Use env variables ● “env” (in .travis.yml)
65.
Example: Connecting to Database env: MYAPP_DB_SERVER=localhost MYAPP_DB_NAME=my_db MYAPP_DB_USER=travis MYAPP_DB_PASS=''
66.
Example: Test Coverage ● Automatically run test coverage
67.
Example: Test Coverage ● Automatically run test coverage ● http://coveralls.io/
68.
Example: Test Coverage ● Automatically run test coverage ● http://coveralls.io/ ●
Add to .travis.yml
69.
.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
70.
See also ● http://mgnm.at/travis520
71.
Example: Test Coverage
72.
Example: Test Coverage
73.
Example: Test Coverage
74.
More and More ● Many more things are possible
75.
More and More ● Many more things are possible ● Barely scratching the surface
76.
More and More ● Many more things are possible ● Barely scratching the surface ●
See http://docs.travisci.com/
77.
More and More ● Many more things are possible ● Barely scratching the surface ●
See http://docs.travisci.com/ ● If you do something cool, please blog it
78.
Summary
79.
Summary ● Github is awesome
80.
Summary ● Github is awesome ● Unit tests are awesome
81.
Summary ● Github is awesome ● Unit tests are awesome ●
Continuous integration is awesome
82.
Summary ● Github is awesome ● Unit tests are awesome ●
Continuous integration is awesome ● TravisCI is awesome
83.
Summarised Summary
84.
Summarised Summary ● APIs are awesome
85.
Summarised Summary ● APIs are awesome ● Other people are awesome
86.
Questions?
87.
Thank You Dave Cross dave@perlhacks.com @davorg