Github, Travis-CI and Perl

download Github, Travis-CI and Perl

of 87

  • date post

    27-Aug-2014
  • Category

    Software

  • view

    2.745
  • download

    7

Embed Size (px)

description

A quick introduction to using Github and Travis-CI to test Perl projects

Transcript of Github, Travis-CI and Perl

  • Github, TravisCI &Perl DaveCross dave@perlhacks.com @davorg
  • GithubisAwesome
  • GithubisAwesomeBecause
  • GithubisAwesomeBecause Git
  • GithubisAwesomeBecause Git Socialcoding
  • GithubisAwesomeBecause Git Socialcoding Free
  • GithubisAwesomeBecause Git Socialcoding Free Octocat
  • GithubisAwesomeBecause API
  • APIsareAwesome APIsallowyouto addcoolfeaturesto Github
  • APIsareAwesome APIsallowother peopletoaddcool featurestoGithub
  • APIsareAwesome APIsallowother peopletoaddcool featurestoGithub
  • APIsareAwesome APIsallowwhole ecosystemofcool newtoys
  • ContinuousIntegration
  • ContinuousIntegration Sourcecodecontrolisawesome
  • ContinuousIntegration Sourcecodecontrolisawesome Unitstestsareawesome
  • ContinuousIntegration Sourcecodecontrolisawesome Unitstestsareawesome Continuousintegrationisrunning unittestswheneveryoucommitcode
  • ContinuousIntegration Sourcecodecontrolisawesome Unitstestsareawesome Continuousintegrationisrunning unittestswheneveryoucommitcode Whichisawesome
  • TravisCIisAwesome
  • TravisCIisAwesome TravisCImonitorsyourGithubprojects
  • TravisCIisAwesome TravisCImonitorsyourGithubprojects Watchesforcommits
  • TravisCIisAwesome TravisCImonitorsyourGithubprojects Watchesforcommits Runsunittests
  • TravisCIisAwesome TravisCImonitorsyourGithubprojects Watchesforcommits Runsunittests Reportssuccessorfailure
  • TravisCIisAwesome TravisCImonitorsyourGithubprojects Watchesforcommits Runsunittests Reportssuccessorfailure Whichisawesome
  • TravisCI&Perl EasytoenableTravisCIforPerlprojects
  • TravisCI&Perl EasytoenableTravisCIforPerlprojects Justaddafiletoyourrepos
  • TravisCI&Perl EasytoenableTravisCIforPerlprojects Justaddafiletoyourrepos .travis.yml
  • TravisCI&Perl EasytoenableTravisCIforPerlprojects Justaddafiletoyourrepos .travis.yml SignupwithTravis
  • TravisCI&Perl EasytoenableTravisCIforPerlprojects Justaddafiletoyourrepos .travis.yml SignupwithTravis Activateproject
  • .travis.yml language:perl perl: "5.18" "5.16" "5.14"
  • (Sidebar) NoPerl5.20supportyet Plannedbutnotimplemented Thereisaworkaround Seehttp://mgnm.at/travis520
  • SignUpWithTravisCI
  • SignUpWithTravisCI http://travisci.org/
  • SignUpWithTravisCI http://travisci.org/ SigninwithyourGithubaccount
  • SignUpWithTravisCI
  • SignUpWithTravisCI
  • IntegratingContinuously Nowyou'resetup
  • IntegratingContinuously Nowyou'resetup Commitachangetoyourrepository
  • IntegratingContinuously Nowyou'resetup Commitachangetoyourrepository Andwait
  • IntegratingContinuously Nowyou'resetup Commitachangetoyourrepository Andwait ...
  • BuildResults
  • BuildResults
  • BuildResults
  • BuildResults
  • BuildResults
  • BuildResults
  • Badges
  • Badges
  • Badges
  • Badges
  • MoreComplexStuff That'sallveryeasy
  • MoreComplexStuff That'sallveryeasy Notallcodeisthatsimple
  • MoreComplexStuff That'sallveryeasy Notallcodeisthatsimple Canwedomore?
  • MoreComplexStuff That'sallveryeasy Notallcodeisthatsimple Canwedomore? Rhetoricalquestion
  • Example:AddingDatabase Adatabaseisacommonrequirement
  • Example:AddingDatabase Adatabaseisacommonrequirement Includeschemainrepo
  • Example:AddingDatabase Adatabaseisacommonrequirement Includeschemainrepo Includedatainrepo
  • Example:AddingDatabase Adatabaseisacommonrequirement Includeschemainrepo Includedatainrepo Loaddatabasebeforetesting
  • Example:AddingDatabase Adatabaseisacommonrequirement Includeschemainrepo Includedatainrepo Loaddatabasebeforetesting before_script(in.travis.yml)
  • Example:AddingDatabase before_script: - mysql -e 'create database my_db;' - mysql -D my_db < db/load_db.sql
  • Example:ConnectingtoDatabase TravisCIsetsupadatabaseuser
  • Example:ConnectingtoDatabase TravisCIsetsupadatabaseuser Calledtravis
  • Example:ConnectingtoDatabase TravisCIsetsupadatabaseuser Calledtravis Nopassword
  • Example:ConnectingtoDatabase TravisCIsetsupadatabaseuser Calledtravis Nopassword Useenvvariables
  • Example:ConnectingtoDatabase TravisCIsetsupadatabaseuser Calledtravis Nopassword Useenvvariables env(in.travis.yml)
  • Example:ConnectingtoDatabase env: MYAPP_DB_SERVER=localhost MYAPP_DB_NAME=my_db MYAPP_DB_USER=travis MYAPP_DB_PASS=''
  • Example:TestCoverage Automaticallyruntestcoverage
  • Example:TestCoverage Automaticallyruntestcoverage http://coveralls.io/
  • Example:TestCoverage Automaticallyruntestcoverage http://coveralls.io/ Addto.travis.yml
  • .travis.yml install: cpanmquietnotest Devel::Cover::Report::Coveralls script: PERL5OPT=Mdevel::Cover=coverage,statement, branch,condition,path,subroutineprovelrsvt cover after_success: coverreportcoveralls
  • Seealso http://mgnm.at/travis520
  • Example:TestCoverage
  • Example:TestCoverage
  • Example:TestCoverage
  • MoreandMore Manymorethingsarepossible
  • MoreandMore Manymorethingsarepossible Barelyscratchingthesurface
  • MoreandMore Manymorethingsarepossible Barelyscratchingthesurface Seehttp://docs.travisci.com/