SlideShare uma empresa Scribd logo
1 de 95
Baixar para ler offline
10 Things You Didn’t
Know Travis-CI Could
Do
       2012-12-08 RejectTokyoRubyKaigi10
              Murahashi “Sanemat” Kenichi
35
10 Things You Didn’t
Know Travis-CI Could
Do
       2012-12-08 RejectTokyoRubyKaigi10
              Murahashi “Sanemat” Kenichi
35
10 Things You Didn’t
Know Travis-CI Could
Do
            2012-12-08 RejectTokyoRubyKaigi10
                   Murahashi “Sanemat” Kenichi



     JEG2
#1 Play Nethack




http://www.spyderbytedesign.com/sites/default/files/images/20123105093356.png
#1 Play Nethack
language: ruby
rvm: 1.9.3
before_script:
  - sudo apt-get install nethack-console
script:
  - PATH=$PATH:/usr/games nethack
#1 Play Nethack
language: ruby
rvm: 1.9.3
before_script:
  - sudo apt-get install nethack-console
script:
  - PATH=$PATH:/usr/games nethack
#1 Play Nethack
language: ruby
NetHack, Copyright 1985-2003
rvm: 1.9.3
       By Stichting Mathematisch Centrum
  before_script:
and M. Stephenson.
   - sudo apt-get install nethack-console
       See license for details.
  script:
   - PATH=$PATH:/usr/games nethack
Shall I pick a character's race, role, gender
and alignment for you? [ynq]
#1 Play Nethack
language: ruby
NetHack, Copyright 1985-2003
rvm: 1.9.3
       By Stichting Mathematisch Centrum
  before_script:
and M. Stephenson.
   - sudo apt-get install nethack-console
       See license for details.
  script:
   - PATH=$PATH:/usr/games nethack
Shall I pick a character's race, role, gender
and alignment for you? [ynq]            Timeout
#2 Play Nethack!
language: ruby
rvm: 1.9.3
before_script:
  - sudo apt-get install nethack-console
script:
  - yes y | PATH=$PATH:/usr/games
nethack
#2 Play Nethack!
NetHack (gettty):
Invalid argument
ent
ust play from a
terminal.
#3 Play Minecraft
language: java
before_script: wget https://
s3.amazonaws.com/MinecraftDownload/
launcher/minecraft.jar
script: java -
cp minecraft.jar net.minecraft.LauncherFra
me
#3 Play Minecraft

Executing your script (java -cp
minecraft.jar net.minecraft.LauncherFrame)
took longer than 30 minutes and was
terminated.         Timeout
#4 Build Timeouts

• http://about.travis-ci.org/docs/user/build-
  configuration/#Build-Timeouts
  “Exact timeout values vary between project
  types but in general are between 10 and 15
  minutes for test suite runs and between 5
  and 10 minutes for before scripts and so
  on.
Inspire from JEG2
                                           JEG2

• Ten Things You Didn't Know Rails Could
  Do
• Ten Things You Didn't Know Ruby Could
  Do
#0 Who am I
name: Murahashi Sanemat Kenichi
env:
- COMPANY=zynga DOMAIN=game
PRODUCT=cityville, words with friends
- COMPANY=mr taddy DOMAIN=e-
commerce PRODUCT=oh my glasses
#0 Tracks
 #1 Play Nethack, #2 Play Nethack!, #3 Play Minecraft, #4 Build Timeouts, #5 BUG:
  Detect wrong commit, #6 Sous Chef, #7 32bit Ubuntu, #8 All in One, #9 Quick
    Feedback, #10 Freenode, #11 Mailing List, #12 Role Model: qa@it, #13 Role
   Models: soryu, #14 Only MAJOR MINOR TEENY, #15 Bundler Version, #16 For
Capybara, #17 Reduce Call Rake, #18 RAILS_ENV, #19 rake spec vs rspec, #20 rake
 spec options, #21 rake cucumber options, #22 rspec Format Document, #23 rake
    COMMAND --trace, #24 Current My Best, #25 bundler_args, --without, #26
 capistrano/bundler, #27 Gemfile Group, #28 Remove Unnecessary Gems, #29 Not
therubyracer, But nodejs, #30 Use :ci Group?, #31 Actual Each Tests, #32 Use Travis-
 pro (era of closed beta), #33 Use Travis-pro public beta, #34 Travis-Pro price?, #35
                                Updating is worthful
#0 We are Hiring!
#0 We are Hiring!




     @sanemat
    October, 2012~
#0 We are Hiring!




      @libkazz
#0 We are Hiring!




      @kei_s
#0 We are Hiring!




     @machida
#0 We are Hiring!




       @is8r
#0 We are Hiring!




             @jugyo
September, 2012 ~ November, 2012
#0 We are Hiring!
#0 Tracks
 #1 Play Nethack, #2 Play Nethack!, #3 Play Minecraft, #4 Build Timeouts, #5 BUG:
  Detect wrong commit, #6 Sous Chef, #7 32bit Ubuntu, #8 All in One, #9 Quick
    Feedback, #10 Freenode, #11 Mailing List, #12 Role Model: qa@it, #13 Role
   Models: soryu, #14 Only MAJOR MINOR TEENY, #15 Bundler Version, #16 For
Capybara, #17 Reduce Call Rake, #18 RAILS_ENV, #19 rake spec vs rspec, #20 rake
 spec options, #21 rake cucumber options, #22 rspec Format Document, #23 rake
    COMMAND --trace, #24 Current My Best, #25 bundler_args, --without, #26
 capistrano/bundler, #27 Gemfile Group, #28 Remove Unnecessary Gems, #29 Not
therubyracer, But nodejs, #30 Use :ci Group?, #31 Actual Each Tests, #32 Use Travis-
 pro (era of closed beta), #33 Use Travis-pro public beta, #34 Travis-Pro price?, #35
                                Updating is worthful
#5 BUG: Detect wrong
      commit
• Travis-CI detects wrong trigger? Github
  send wrong hook? - Stack Overflow
• Two problems:
 • Wrong detect as master commit, and
    sometimes fail
 • Wrong detect spend actual build time
#5 BUG: Detect wrong
      commit
• Travis-CI detects wrong trigger? Github
  send wrong hook? - Stack Overflow
• Two problems:
 • Wrong detect as master commit, and
    sometimes fail
 • Wrong detect spend actual build time
#6 Sous Chef
• Sous Chef (michaelklishin/sous-chef)
• Build your own travis sandbox
 • $ gem install vagrant --version ">= 1.0"
    $ hub clone michaelklishin/sous-chef
    $ cd sous-chef
    $ cp Vagrantfile.sample Vagrantfile
    $ vagrant up
#6 Sous Chef
• Sous Chef (michaelklishin/sous-chef)
• Build your own travis sandbox
 • $ gem install vagrant --version ">= 1.0"
    $ hub clone michaelklishin/sous-chef
    $ cd sous-chef
    $ cp Vagrantfile.sample Vagrantfile
    $ vagrant up
#7 32bit Ubuntu

• “oneiric32_base”
• Ubuntu 11.10, 32bit
• https://github.com/michaelklishin/sous-
  chef/blob/master/Vagrantfile.sample
#7 32bit Ubuntu

• “oneiric32_base”
• Ubuntu 11.10, 32bit         Sad
• https://github.com/michaelklishin/sous-
  chef/blob/master/Vagrantfile.sample
#8 All in One
• https://github.com/travis-ci/travis-
  cookbooks/ci_environment
#8 All in One
• https://github.com/travis-ci/travis-
    cookbooks/ci_environment
•   ant, apt, bazaar, bison, build-essential, cassandra, chromium, clang,
    cmake, composer, couchdb, doxygen, elasticsearch, emacs, erlang,
    firefox, git, golang, gradle, gvm, haskell, hbase, htop, imagemagick,
    iptables, java, kerl, kestrel, leiningen, libffi, libgdbm, libncurses, libossp-
    uuid, libqt4, libreadline, libssl, libxml, libyaml, lighttpd, maven3,
    memcached, mercurial, mingw32, mongodb, mysql, neo4j-server,
    networking_basic, nodejs, openssh, openssl, perlbrew, phantomjs, php,
    phpbuild, phpenv, postgresql, pypy, python, rabbitmq, ragel, ramfs,
    rebar, redis, riak, rvm, sbt, scons, sphinx, sqlite, subversion, sweeper,
    sysctl, timezone, travis_build_environment, unarchivers, util-linux,
    vim, xserver, zeromq, zookeeper
#9 Quick Feedback
#9 Quick Feedback



             Only Travis-pro
#10 Freenode
• irc.freenode.net#travis
#10 Freenode
• irc.freenode.net#travis

                            People are
                            gathered, only when
                            the error came out
                            incomprehensible.
#11 Mailing List
• http://groups.google.com/group/travis-ci
#0 We are Hiring!
#0 Tracks
 #1 Play Nethack, #2 Play Nethack!, #3 Play Minecraft, #4 Build Timeouts, #5 BUG:
  Detect wrong commit, #6 Sous Chef, #7 32bit Ubuntu, #8 All in One, #9 Quick
    Feedback, #10 Freenode, #11 Mailing List, #12 Role Model: qa@it, #13 Role
   Models: soryu, #14 Only MAJOR MINOR TEENY, #15 Bundler Version, #16 For
Capybara, #17 Reduce Call Rake, #18 RAILS_ENV, #19 rake spec vs rspec, #20 rake
 spec options, #21 rake cucumber options, #22 rspec Format Document, #23 rake
    COMMAND --trace, #24 Current My Best, #25 bundler_args, --without, #26
 capistrano/bundler, #27 Gemfile Group, #28 Remove Unnecessary Gems, #29 Not
therubyracer, But nodejs, #30 Use :ci Group?, #31 Actual Each Tests, #32 Use Travis-
 pro (era of closed beta), #33 Use Travis-pro public beta, #34 Travis-Pro price?, #35
                                Updating is worthful
#12 Role Model: qa@it

Travis CIでサーバ側のブラウザはどう設定す
れば良い? - QA@IT
language: ruby
rvm: 1.9.3
bundler_args: --without development:production
before_install: gem update bundler
before_script:
  - RAILS_ENV=test rake db:create db:test:load --quiet
  - export DISPLAY=:99.0
  - sh -e /etc/init.d/xvfb start
#12 Role Model: qa@it

Travis CIでサーバ側のブラウザはどう設定す
れば良い? - QA@IT
language: ruby
rvm: 1.9.3
bundler_args: --without development:production           8 lines
before_install: gem update bundler
before_script:
  - RAILS_ENV=test rake db:create db:test:load --quiet
  - export DISPLAY=:99.0
  - sh -e /etc/init.d/xvfb start
#13 Role Models: soryu

 Gather .travis.yml sanemat/soryu
#13 Role Models: soryu
                                    Source
 Gather .travis.yml sanemat/soryu   O
                                    R
                                    Y
                                    U
#13 Role Models: soryu
                                    Source
 Gather .travis.yml sanemat/soryu   O
                                    R
                                    Y
                                    U

                                Please
                                Pull Request
#0 We are Hiring!
#0 Tracks
 #1 Play Nethack, #2 Play Nethack!, #3 Play Minecraft, #4 Build Timeouts, #5 BUG:
  Detect wrong commit, #6 Sous Chef, #7 32bit Ubuntu, #8 All in One, #9 Quick
    Feedback, #10 Freenode, #11 Mailing List, #12 Role Model: qa@it, #13 Role
   Models: soryu, #14 Only MAJOR MINOR TEENY, #15 Bundler Version, #16 For
Capybara, #17 Reduce Call Rake, #18 RAILS_ENV, #19 rake spec vs rspec, #20 rake
 spec options, #21 rake cucumber options, #22 rspec Format Document, #23 rake
    COMMAND --trace, #24 Current My Best, #25 bundler_args, --without, #26
 capistrano/bundler, #27 Gemfile Group, #28 Remove Unnecessary Gems, #29 Not
therubyracer, But nodejs, #30 Use :ci Group?, #31 Actual Each Tests, #32 Use Travis-
 pro (era of closed beta), #33 Use Travis-pro public beta, #34 Travis-Pro price?, #35
                                Updating is worthful
#14 Only MAJOR
     MINOR TEENY
rvm:
 - 1.9.3
#14 Only MAJOR
     MINOR TEENY
rvm:
           Do not specify
 - 1.9.3
           patch level like 1.9.3-p327
#15 Bundler Version
before_install:
 - gem update bundler
#15 Bundler Version
before_install:
 - gem update bundler
                bundle --version #=> 1.1
                bundle --version #=> 1.2
#16 For Capybara
before_script:
 - export DISPLAY=:99.0
 - sh -e /etc/init.d/xvfb start
#16 For Capybara
before_script:
 - export DISPLAY=:99.0
 - sh -e /etc/init.d/xvfb start
#17 Reduce Call Rake
before_script:
 - rake db:create
 - rake db:migrate
script:
 - rake spec

before_script:
 - rake db:create db:migrate
script:
 - rake spec
#17 Reduce Call Rake
before_script:
 - rake db:create
 - rake db:migrate
script:
 - rake spec

before_script:
 - rake db:create db:migrate
script:
 - rake spec
#18 RAILS_ENV


- rake db:create

- RAILS_ENV=test rake db:create
#18 RAILS_ENV


- rake db:create         development, test

- RAILS_ENV=test rake db:create       test
#19 rake spec vs rspec


$ rake spec

$ rspec
#19 rake spec vs rspec


$ rake spec   purge, migrate, test

$ rspec       only test
#20 rake spec options

$ rake spec SPEC=path/to/file
SPEC_OPT=’-fd’

$ rspec -fd path/to/file
#20 rake spec options

                         SPEC, SPEC_OPT
$ rake spec SPEC=path/to/file
SPEC_OPT=’-fd’

$ rspec -fd path/to/file
#21 rake cucumber
       options

$ rake cucumber FEATURE=path/to/file

$ cucumber path/to/file
#21 rake cucumber
       options
                               FEATURE
$ rake cucumber FEATURE=path/to/file

$ cucumber path/to/file
#22 rspec Format
      Document
$ rspec -fd --color
#22 rspec Format
      Document
$ rspec -fd --color
#23 rake COMMAND
       --trace
$ rake db:migrate --trace
#23 rake COMMAND
       --trace
$ rake db:migrate --trace
#24 Current My Best

before_script:
 - RAILS_ENV=test bundle exec rake
db:create db:schema:load
script:
- bundle exec rspec -fd
#24 Current My Best

before_script:
 - RAILS_ENV=test bundle exec rake
db:create db:schema:load
script:
- bundle exec rspec -fd
#0 We are Hiring!
#0 Tracks
 #1 Play Nethack, #2 Play Nethack!, #3 Play Minecraft, #4 Build Timeouts, #5 BUG:
  Detect wrong commit, #6 Sous Chef, #7 32bit Ubuntu, #8 All in One, #9 Quick
    Feedback, #10 Freenode, #11 Mailing List, #12 Role Model: qa@it, #13 Role
   Models: soryu, #14 Only MAJOR MINOR TEENY, #15 Bundler Version, #16 For
Capybara, #17 Reduce Call Rake, #18 RAILS_ENV, #19 rake spec vs rspec, #20 rake
 spec options, #21 rake cucumber options, #22 rspec Format Document, #23 rake
    COMMAND --trace, #24 Current My Best, #25 bundler_args, --without, #26
 capistrano/bundler, #27 Gemfile Group, #28 Remove Unnecessary Gems, #29 Not
therubyracer, But nodejs, #30 Use :ci Group?, #31 Actual Each Tests, #32 Use Travis-
 pro (era of closed beta), #33 Use Travis-pro public beta, #34 Travis-Pro price?, #35
                                Updating is worthful
#25 bundler_args, --
      without

bundler_args:
 --deployment --without development
production
#25 bundler_args, --
      without

bundler_args:
 --deployment --without development
production
#26 capistrano/bundler
https://github.com/carlhuda/bundler/blob/
master/lib/bundler/deployment.rb
#26 capistrano/bundler
https://github.com/carlhuda/bundler/blob/
master/lib/bundler/deployment.rb
#27 Gemfile Group
Gemfile
#27 Gemfile Group
Gemfile



               Gemfileのgroup
                で:production,
            :development, :test 以外
            は気をつけて使う « 實
               松アウトプット
#28 Remove
  Unnecessary Gems

Remove debugger, therubyracer(libv8)
from Travis-CI Environment
#28 Remove
  Unnecessary Gems

Remove debugger, therubyracer(libv8)
from Travis-CI Environment
                          Travis-ci環境からdebuggerは
                          外しておけ « 實松アウト
                                  プット
#29 Not therubyracer,
     But nodejs

x therubyracer
o nodejs
#29 Not therubyracer,
     But nodejs

x therubyracer
o nodejs         Travis-CI has Node.js
#30 Use :ci Group?
Use debugger, pry-
rails in test
environment, but
these are
unnecessary in travis
environment

group :ci
#30 Use :ci Group?
Use debugger, pry-      bundler-args:
rails in test           - without
environment, but        development
these are               production test
unnecessary in travis
environment             capistrano
                        :set, :without:
group :ci               [:development,
                        :test, :ci]
#31 Actual Each Tests

Small toy app
depends on spin-up
time, but actual
mostly spends each
tests.
#31 Actual Each Tests

Small toy app
                     database cleaner,
depends on spin-up
                     fixture, fixture
time, but actual
                     replacement, mock,
mostly spends each
                     stub, ...
tests.
#0 We are Hiring!
#0 Tracks
 #1 Play Nethack, #2 Play Nethack!, #3 Play Minecraft, #4 Build Timeouts, #5 BUG:
  Detect wrong commit, #6 Sous Chef, #7 32bit Ubuntu, #8 All in One, #9 Quick
    Feedback, #10 Freenode, #11 Mailing List, #12 Role Model: qa@it, #13 Role
   Models: soryu, #14 Only MAJOR MINOR TEENY, #15 Bundler Version, #16 For
Capybara, #17 Reduce Call Rake, #18 RAILS_ENV, #19 rake spec vs rspec, #20 rake
 spec options, #21 rake cucumber options, #22 rspec Format Document, #23 rake
    COMMAND --trace, #24 Current My Best, #25 bundler_args, --without, #26
 capistrano/bundler, #27 Gemfile Group, #28 Remove Unnecessary Gems, #29 Not
therubyracer, But nodejs, #30 Use :ci Group?, #31 Actual Each Tests, #32 Use Travis-
 pro (era of closed beta), #33 Use Travis-pro public beta, #34 Travis-Pro price?, #35
                                Updating is worthful
#32 Use Travis-pro (era
    of closed beta)




    Travis CI: The Travis Plans
#33 Use Travis-pro
     public beta
Travis CI: Shipping the new
Travis CI web UI for Travis
             Pro
#33 Use Travis-pro
     public beta
Travis CI: Shipping the new
Travis CI web UI for Travis
             Pro
                         December 27, 2012
#34 Travis-Pro price?

Travis CI: The Travis Plans
#34 Travis-Pro price?

Travis CI: The Travis Plans
                       small plan is $129 per
                        month, and our big
                         plan is $249 per
                               month
#35 Updating is
         worthful
Automatical update causes
pain Temporarily, but this
bring happy, I think.
#0 Tracks
 #1 Play Nethack, #2 Play Nethack!, #3 Play Minecraft, #4 Build Timeouts, #5 BUG:
  Detect wrong commit, #6 Sous Chef, #7 32bit Ubuntu, #8 All in One, #9 Quick
    Feedback, #10 Freenode, #11 Mailing List, #12 Role Model: qa@it, #13 Role
   Models: soryu, #14 Only MAJOR MINOR TEENY, #15 Bundler Version, #16 For
Capybara, #17 Reduce Call Rake, #18 RAILS_ENV, #19 rake spec vs rspec, #20 rake
 spec options, #21 rake cucumber options, #22 rspec Format Document, #23 rake
    COMMAND --trace, #24 Current My Best, #25 bundler_args, --without, #26
 capistrano/bundler, #27 Gemfile Group, #28 Remove Unnecessary Gems, #29 Not
therubyracer, But nodejs, #30 Use :ci Group?, #31 Actual Each Tests, #32 Use Travis-
 pro (era of closed beta), #33 Use Travis-pro public beta, #34 Travis-Pro price?, #35
                                Updating is worthful
#0 We are Hiring!

Mais conteúdo relacionado

Mais procurados

Active Web Development
Active Web DevelopmentActive Web Development
Active Web DevelopmentDivya Manian
 
All of Your Network Monitoring is (probably) Wrong
All of Your Network Monitoring is (probably) WrongAll of Your Network Monitoring is (probably) Wrong
All of Your Network Monitoring is (probably) Wrongice799
 
Digging for Android Kernel Bugs
Digging for Android Kernel BugsDigging for Android Kernel Bugs
Digging for Android Kernel BugsJiahong Fang
 
[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory AnalysisMoabi.com
 
Kernel Recipes 2019 - BPF at Facebook
Kernel Recipes 2019 - BPF at FacebookKernel Recipes 2019 - BPF at Facebook
Kernel Recipes 2019 - BPF at FacebookAnne Nicolas
 
Raspberry Pi + ROS
Raspberry Pi + ROSRaspberry Pi + ROS
Raspberry Pi + ROSArnoldBail
 
Build Lifecycle Craftsmanship for the Transylvania JUG
Build Lifecycle Craftsmanship for the Transylvania JUGBuild Lifecycle Craftsmanship for the Transylvania JUG
Build Lifecycle Craftsmanship for the Transylvania JUGMatthew McCullough
 
Stack Smashing Protector (Paul Rascagneres)
Stack Smashing Protector (Paul Rascagneres)Stack Smashing Protector (Paul Rascagneres)
Stack Smashing Protector (Paul Rascagneres)Hackfest Communication
 
Deconstruct 2017: All programmers MUST learn C and Assembly
Deconstruct 2017: All programmers MUST learn C and AssemblyDeconstruct 2017: All programmers MUST learn C and Assembly
Deconstruct 2017: All programmers MUST learn C and Assemblyice799
 
不用不可之 Fiddler Debugging Proxy!
不用不可之 Fiddler Debugging Proxy!不用不可之 Fiddler Debugging Proxy!
不用不可之 Fiddler Debugging Proxy!Joseph Chiang
 
[Defcon24] Introduction to the Witchcraft Compiler Collection
[Defcon24] Introduction to the Witchcraft Compiler Collection[Defcon24] Introduction to the Witchcraft Compiler Collection
[Defcon24] Introduction to the Witchcraft Compiler CollectionMoabi.com
 
Pentesting an unfriendly environment: bypassing (un)common defences and mate ...
Pentesting an unfriendly environment: bypassing (un)common defences and mate ...Pentesting an unfriendly environment: bypassing (un)common defences and mate ...
Pentesting an unfriendly environment: bypassing (un)common defences and mate ...Sandro Zaccarini
 

Mais procurados (15)

Active Web Development
Active Web DevelopmentActive Web Development
Active Web Development
 
All of Your Network Monitoring is (probably) Wrong
All of Your Network Monitoring is (probably) WrongAll of Your Network Monitoring is (probably) Wrong
All of Your Network Monitoring is (probably) Wrong
 
Digging for Android Kernel Bugs
Digging for Android Kernel BugsDigging for Android Kernel Bugs
Digging for Android Kernel Bugs
 
Hotspot tools
Hotspot toolsHotspot tools
Hotspot tools
 
[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis
 
Killer Bugs From Outer Space
Killer Bugs From Outer SpaceKiller Bugs From Outer Space
Killer Bugs From Outer Space
 
Kernel Recipes 2019 - BPF at Facebook
Kernel Recipes 2019 - BPF at FacebookKernel Recipes 2019 - BPF at Facebook
Kernel Recipes 2019 - BPF at Facebook
 
Raspberry Pi + ROS
Raspberry Pi + ROSRaspberry Pi + ROS
Raspberry Pi + ROS
 
Build Lifecycle Craftsmanship for the Transylvania JUG
Build Lifecycle Craftsmanship for the Transylvania JUGBuild Lifecycle Craftsmanship for the Transylvania JUG
Build Lifecycle Craftsmanship for the Transylvania JUG
 
Porting Android
Porting AndroidPorting Android
Porting Android
 
Stack Smashing Protector (Paul Rascagneres)
Stack Smashing Protector (Paul Rascagneres)Stack Smashing Protector (Paul Rascagneres)
Stack Smashing Protector (Paul Rascagneres)
 
Deconstruct 2017: All programmers MUST learn C and Assembly
Deconstruct 2017: All programmers MUST learn C and AssemblyDeconstruct 2017: All programmers MUST learn C and Assembly
Deconstruct 2017: All programmers MUST learn C and Assembly
 
不用不可之 Fiddler Debugging Proxy!
不用不可之 Fiddler Debugging Proxy!不用不可之 Fiddler Debugging Proxy!
不用不可之 Fiddler Debugging Proxy!
 
[Defcon24] Introduction to the Witchcraft Compiler Collection
[Defcon24] Introduction to the Witchcraft Compiler Collection[Defcon24] Introduction to the Witchcraft Compiler Collection
[Defcon24] Introduction to the Witchcraft Compiler Collection
 
Pentesting an unfriendly environment: bypassing (un)common defences and mate ...
Pentesting an unfriendly environment: bypassing (un)common defences and mate ...Pentesting an unfriendly environment: bypassing (un)common defences and mate ...
Pentesting an unfriendly environment: bypassing (un)common defences and mate ...
 

Destaque

Conferencia personal de restaurantes GONZALO CRUZ SOMMELIER
Conferencia personal de restaurantes GONZALO CRUZ SOMMELIERConferencia personal de restaurantes GONZALO CRUZ SOMMELIER
Conferencia personal de restaurantes GONZALO CRUZ SOMMELIERTAUROETILICO1
 
Report about Sikachu meetup #1
Report about Sikachu meetup #1Report about Sikachu meetup #1
Report about Sikachu meetup #1Kenichi Murahashi
 
もっと早くに取り組んでおけばよかった開発プロセス
もっと早くに取り組んでおけばよかった開発プロセスもっと早くに取り組んでおけばよかった開発プロセス
もっと早くに取り組んでおけばよかった開発プロセスKazuki Takahashi
 
reluxの開発体制 - weekdayランサーズ勉強会 -
reluxの開発体制 - weekdayランサーズ勉強会 -reluxの開発体制 - weekdayランサーズ勉強会 -
reluxの開発体制 - weekdayランサーズ勉強会 -Yoshihiro Ohsuka
 
Are you ready? ~これからアジャイル開発をスタートアップするために プラクティスの実践と実感~
Are you ready? ~これからアジャイル開発をスタートアップするために プラクティスの実践と実感~Are you ready? ~これからアジャイル開発をスタートアップするために プラクティスの実践と実感~
Are you ready? ~これからアジャイル開発をスタートアップするために プラクティスの実践と実感~Akira Ikeda
 
スクラム開発について
スクラム開発についてスクラム開発について
スクラム開発についてAkio Terayama
 
リクルート住まいカンパニーの新規事業でのスクラム導入奮闘記
リクルート住まいカンパニーの新規事業でのスクラム導入奮闘記リクルート住まいカンパニーの新規事業でのスクラム導入奮闘記
リクルート住まいカンパニーの新規事業でのスクラム導入奮闘記Tatsuya Yokoyama
 
「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)
「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)
「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)Makoto Nishikawa
 
スクラムはもうだめぽよ!新しい開発手法『パワープレイ』をお姉さんが教えてあげちゃう!
スクラムはもうだめぽよ!新しい開発手法『パワープレイ』をお姉さんが教えてあげちゃう!スクラムはもうだめぽよ!新しい開発手法『パワープレイ』をお姉さんが教えてあげちゃう!
スクラムはもうだめぽよ!新しい開発手法『パワープレイ』をお姉さんが教えてあげちゃう!Moto Arima
 
企業システムにアジャイルは必要か
企業システムにアジャイルは必要か企業システムにアジャイルは必要か
企業システムにアジャイルは必要かHiromasa Oka
 
5分で分かるアジャイルムーブメントの歴史 拡大版
5分で分かるアジャイルムーブメントの歴史 拡大版5分で分かるアジャイルムーブメントの歴史 拡大版
5分で分かるアジャイルムーブメントの歴史 拡大版Fumihiko Kinoshita
 
社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove
社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove
社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove Itsuki Kuroda
 
小さく始める大規模スクラム
小さく始める大規模スクラム小さく始める大規模スクラム
小さく始める大規模スクラムKeisuke Tsukagoshi
 

Destaque (15)

Conferencia personal de restaurantes GONZALO CRUZ SOMMELIER
Conferencia personal de restaurantes GONZALO CRUZ SOMMELIERConferencia personal de restaurantes GONZALO CRUZ SOMMELIER
Conferencia personal de restaurantes GONZALO CRUZ SOMMELIER
 
Report about Sikachu meetup #1
Report about Sikachu meetup #1Report about Sikachu meetup #1
Report about Sikachu meetup #1
 
もっと早くに取り組んでおけばよかった開発プロセス
もっと早くに取り組んでおけばよかった開発プロセスもっと早くに取り組んでおけばよかった開発プロセス
もっと早くに取り組んでおけばよかった開発プロセス
 
reluxの開発体制 - weekdayランサーズ勉強会 -
reluxの開発体制 - weekdayランサーズ勉強会 -reluxの開発体制 - weekdayランサーズ勉強会 -
reluxの開発体制 - weekdayランサーズ勉強会 -
 
11:7@google
11:7@google11:7@google
11:7@google
 
Are you ready? ~これからアジャイル開発をスタートアップするために プラクティスの実践と実感~
Are you ready? ~これからアジャイル開発をスタートアップするために プラクティスの実践と実感~Are you ready? ~これからアジャイル開発をスタートアップするために プラクティスの実践と実感~
Are you ready? ~これからアジャイル開発をスタートアップするために プラクティスの実践と実感~
 
Yahoo! JAPAN の アジャイル開発の普及戦略
Yahoo! JAPAN の アジャイル開発の普及戦略Yahoo! JAPAN の アジャイル開発の普及戦略
Yahoo! JAPAN の アジャイル開発の普及戦略
 
スクラム開発について
スクラム開発についてスクラム開発について
スクラム開発について
 
リクルート住まいカンパニーの新規事業でのスクラム導入奮闘記
リクルート住まいカンパニーの新規事業でのスクラム導入奮闘記リクルート住まいカンパニーの新規事業でのスクラム導入奮闘記
リクルート住まいカンパニーの新規事業でのスクラム導入奮闘記
 
「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)
「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)
「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)
 
スクラムはもうだめぽよ!新しい開発手法『パワープレイ』をお姉さんが教えてあげちゃう!
スクラムはもうだめぽよ!新しい開発手法『パワープレイ』をお姉さんが教えてあげちゃう!スクラムはもうだめぽよ!新しい開発手法『パワープレイ』をお姉さんが教えてあげちゃう!
スクラムはもうだめぽよ!新しい開発手法『パワープレイ』をお姉さんが教えてあげちゃう!
 
企業システムにアジャイルは必要か
企業システムにアジャイルは必要か企業システムにアジャイルは必要か
企業システムにアジャイルは必要か
 
5分で分かるアジャイルムーブメントの歴史 拡大版
5分で分かるアジャイルムーブメントの歴史 拡大版5分で分かるアジャイルムーブメントの歴史 拡大版
5分で分かるアジャイルムーブメントの歴史 拡大版
 
社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove
社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove
社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove
 
小さく始める大規模スクラム
小さく始める大規模スクラム小さく始める大規模スクラム
小さく始める大規模スクラム
 

Semelhante a 2012 12-08-travis-ci-could-do

Scaling Rails with memcached
Scaling Rails with memcachedScaling Rails with memcached
Scaling Rails with memcachedelliando dias
 
Rocket Fuelled Cucumbers
Rocket Fuelled CucumbersRocket Fuelled Cucumbers
Rocket Fuelled CucumbersJoseph Wilk
 
Rails Hardware (no conclusions!)
Rails Hardware (no conclusions!)Rails Hardware (no conclusions!)
Rails Hardware (no conclusions!)yarry
 
Kettunen, miaubiz fuzzing at scale and in style
Kettunen, miaubiz   fuzzing at scale and in styleKettunen, miaubiz   fuzzing at scale and in style
Kettunen, miaubiz fuzzing at scale and in styleDefconRussia
 
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Course
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory CourseRuby on Rails 101 - Presentation Slides for a Five Day Introductory Course
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Coursepeter_marklund
 
Building your own NSQL store
Building your own NSQL storeBuilding your own NSQL store
Building your own NSQL storeEdward Capriolo
 
Nibiru: Building your own NoSQL store
Nibiru: Building your own NoSQL storeNibiru: Building your own NoSQL store
Nibiru: Building your own NoSQL storeEdward Capriolo
 
Nibiru: Building your own NoSQL store
Nibiru: Building your own NoSQL storeNibiru: Building your own NoSQL store
Nibiru: Building your own NoSQL storeEdward Capriolo
 
Ruby on rails探索
Ruby on rails探索Ruby on rails探索
Ruby on rails探索Mu Chun Wang
 
Monkeybars in the Manor
Monkeybars in the ManorMonkeybars in the Manor
Monkeybars in the Manormartinbtt
 
Middleware as Code with mruby
Middleware as Code with mrubyMiddleware as Code with mruby
Middleware as Code with mrubyHiroshi SHIBATA
 
Hacking with ruby2ruby
Hacking with ruby2rubyHacking with ruby2ruby
Hacking with ruby2rubyMarc Chung
 
JRuby - Enterprise 2.0
JRuby - Enterprise 2.0JRuby - Enterprise 2.0
JRuby - Enterprise 2.0Jan Sifra
 
introduction-infra-as-a-code using terraform
introduction-infra-as-a-code using terraformintroduction-infra-as-a-code using terraform
introduction-infra-as-a-code using terraformniyof97
 
Docker 활용법: dumpdocker
Docker 활용법: dumpdockerDocker 활용법: dumpdocker
Docker 활용법: dumpdockerJaehwa Park
 
#CNX14 - Using Ruby for Reliability, Consistency, and Speed
#CNX14 - Using Ruby for Reliability, Consistency, and Speed#CNX14 - Using Ruby for Reliability, Consistency, and Speed
#CNX14 - Using Ruby for Reliability, Consistency, and SpeedSalesforce Marketing Cloud
 
From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016
From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016
From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016Susan Potter
 
Writing a Ruby Gem for beginners
Writing a Ruby Gem for beginnersWriting a Ruby Gem for beginners
Writing a Ruby Gem for beginnersConFoo
 
Boxen: How to Manage an Army of Laptops
Boxen: How to Manage an Army of LaptopsBoxen: How to Manage an Army of Laptops
Boxen: How to Manage an Army of LaptopsPuppet
 

Semelhante a 2012 12-08-travis-ci-could-do (20)

Scaling Rails with memcached
Scaling Rails with memcachedScaling Rails with memcached
Scaling Rails with memcached
 
Rocket Fuelled Cucumbers
Rocket Fuelled CucumbersRocket Fuelled Cucumbers
Rocket Fuelled Cucumbers
 
Rails Hardware (no conclusions!)
Rails Hardware (no conclusions!)Rails Hardware (no conclusions!)
Rails Hardware (no conclusions!)
 
Kettunen, miaubiz fuzzing at scale and in style
Kettunen, miaubiz   fuzzing at scale and in styleKettunen, miaubiz   fuzzing at scale and in style
Kettunen, miaubiz fuzzing at scale and in style
 
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Course
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory CourseRuby on Rails 101 - Presentation Slides for a Five Day Introductory Course
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Course
 
Building your own NSQL store
Building your own NSQL storeBuilding your own NSQL store
Building your own NSQL store
 
Nibiru: Building your own NoSQL store
Nibiru: Building your own NoSQL storeNibiru: Building your own NoSQL store
Nibiru: Building your own NoSQL store
 
Nibiru: Building your own NoSQL store
Nibiru: Building your own NoSQL storeNibiru: Building your own NoSQL store
Nibiru: Building your own NoSQL store
 
Ruby on rails探索
Ruby on rails探索Ruby on rails探索
Ruby on rails探索
 
Monkeybars in the Manor
Monkeybars in the ManorMonkeybars in the Manor
Monkeybars in the Manor
 
Middleware as Code with mruby
Middleware as Code with mrubyMiddleware as Code with mruby
Middleware as Code with mruby
 
Hacking with ruby2ruby
Hacking with ruby2rubyHacking with ruby2ruby
Hacking with ruby2ruby
 
JRuby - Enterprise 2.0
JRuby - Enterprise 2.0JRuby - Enterprise 2.0
JRuby - Enterprise 2.0
 
introduction-infra-as-a-code using terraform
introduction-infra-as-a-code using terraformintroduction-infra-as-a-code using terraform
introduction-infra-as-a-code using terraform
 
Docker 활용법: dumpdocker
Docker 활용법: dumpdockerDocker 활용법: dumpdocker
Docker 활용법: dumpdocker
 
#CNX14 - Using Ruby for Reliability, Consistency, and Speed
#CNX14 - Using Ruby for Reliability, Consistency, and Speed#CNX14 - Using Ruby for Reliability, Consistency, and Speed
#CNX14 - Using Ruby for Reliability, Consistency, and Speed
 
From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016
From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016
From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016
 
Writing a Ruby Gem for beginners
Writing a Ruby Gem for beginnersWriting a Ruby Gem for beginners
Writing a Ruby Gem for beginners
 
Test
TestTest
Test
 
Boxen: How to Manage an Army of Laptops
Boxen: How to Manage an Army of LaptopsBoxen: How to Manage an Army of Laptops
Boxen: How to Manage an Army of Laptops
 

Mais de Kenichi Murahashi

How to keep working technically interesting
How to keep working technically interestingHow to keep working technically interesting
How to keep working technically interestingKenichi Murahashi
 
Rubyコミッタのいる開発いい話
Rubyコミッタのいる開発いい話Rubyコミッタのいる開発いい話
Rubyコミッタのいる開発いい話Kenichi Murahashi
 
2012 05 12 Not Only Card Battle Game
2012 05 12 Not Only Card Battle Game2012 05 12 Not Only Card Battle Game
2012 05 12 Not Only Card Battle GameKenichi Murahashi
 
2012-04-21-ignite-offline-mobile-app-has-great-potential
2012-04-21-ignite-offline-mobile-app-has-great-potential2012-04-21-ignite-offline-mobile-app-has-great-potential
2012-04-21-ignite-offline-mobile-app-has-great-potentialKenichi Murahashi
 
2012-04-18-shibuyarb-offline-mobile-app-has-great-potential
2012-04-18-shibuyarb-offline-mobile-app-has-great-potential2012-04-18-shibuyarb-offline-mobile-app-has-great-potential
2012-04-18-shibuyarb-offline-mobile-app-has-great-potentialKenichi Murahashi
 

Mais de Kenichi Murahashi (10)

How to keep working technically interesting
How to keep working technically interestingHow to keep working technically interesting
How to keep working technically interesting
 
Bye, tachikoma gem
Bye, tachikoma gemBye, tachikoma gem
Bye, tachikoma gem
 
Rubyコミッタのいる開発いい話
Rubyコミッタのいる開発いい話Rubyコミッタのいる開発いい話
Rubyコミッタのいる開発いい話
 
How to Make Eccentricities
How to Make EccentricitiesHow to Make Eccentricities
How to Make Eccentricities
 
20130629 tachikoma-tokyurb
20130629 tachikoma-tokyurb20130629 tachikoma-tokyurb
20130629 tachikoma-tokyurb
 
2012 05 12 Not Only Card Battle Game
2012 05 12 Not Only Card Battle Game2012 05 12 Not Only Card Battle Game
2012 05 12 Not Only Card Battle Game
 
2012-04-21-ignite-offline-mobile-app-has-great-potential
2012-04-21-ignite-offline-mobile-app-has-great-potential2012-04-21-ignite-offline-mobile-app-has-great-potential
2012-04-21-ignite-offline-mobile-app-has-great-potential
 
2012-04-18-shibuyarb-offline-mobile-app-has-great-potential
2012-04-18-shibuyarb-offline-mobile-app-has-great-potential2012-04-18-shibuyarb-offline-mobile-app-has-great-potential
2012-04-18-shibuyarb-offline-mobile-app-has-great-potential
 
20090930 Phpstudy Limonade
20090930 Phpstudy Limonade20090930 Phpstudy Limonade
20090930 Phpstudy Limonade
 
20090801phpstudy Sanemat
20090801phpstudy Sanemat20090801phpstudy Sanemat
20090801phpstudy Sanemat
 

2012 12-08-travis-ci-could-do

  • 1. 10 Things You Didn’t Know Travis-CI Could Do 2012-12-08 RejectTokyoRubyKaigi10 Murahashi “Sanemat” Kenichi
  • 2. 35 10 Things You Didn’t Know Travis-CI Could Do 2012-12-08 RejectTokyoRubyKaigi10 Murahashi “Sanemat” Kenichi
  • 3. 35 10 Things You Didn’t Know Travis-CI Could Do 2012-12-08 RejectTokyoRubyKaigi10 Murahashi “Sanemat” Kenichi JEG2
  • 5. #1 Play Nethack language: ruby rvm: 1.9.3 before_script: - sudo apt-get install nethack-console script: - PATH=$PATH:/usr/games nethack
  • 6. #1 Play Nethack language: ruby rvm: 1.9.3 before_script: - sudo apt-get install nethack-console script: - PATH=$PATH:/usr/games nethack
  • 7. #1 Play Nethack language: ruby NetHack, Copyright 1985-2003 rvm: 1.9.3 By Stichting Mathematisch Centrum before_script: and M. Stephenson. - sudo apt-get install nethack-console See license for details. script: - PATH=$PATH:/usr/games nethack Shall I pick a character's race, role, gender and alignment for you? [ynq]
  • 8. #1 Play Nethack language: ruby NetHack, Copyright 1985-2003 rvm: 1.9.3 By Stichting Mathematisch Centrum before_script: and M. Stephenson. - sudo apt-get install nethack-console See license for details. script: - PATH=$PATH:/usr/games nethack Shall I pick a character's race, role, gender and alignment for you? [ynq] Timeout
  • 9. #2 Play Nethack! language: ruby rvm: 1.9.3 before_script: - sudo apt-get install nethack-console script: - yes y | PATH=$PATH:/usr/games nethack
  • 10. #2 Play Nethack! NetHack (gettty): Invalid argument ent ust play from a terminal.
  • 12. #3 Play Minecraft Executing your script (java -cp minecraft.jar net.minecraft.LauncherFrame) took longer than 30 minutes and was terminated. Timeout
  • 13. #4 Build Timeouts • http://about.travis-ci.org/docs/user/build- configuration/#Build-Timeouts “Exact timeout values vary between project types but in general are between 10 and 15 minutes for test suite runs and between 5 and 10 minutes for before scripts and so on.
  • 14. Inspire from JEG2 JEG2 • Ten Things You Didn't Know Rails Could Do • Ten Things You Didn't Know Ruby Could Do
  • 15. #0 Who am I name: Murahashi Sanemat Kenichi env: - COMPANY=zynga DOMAIN=game PRODUCT=cityville, words with friends - COMPANY=mr taddy DOMAIN=e- commerce PRODUCT=oh my glasses
  • 16. #0 Tracks #1 Play Nethack, #2 Play Nethack!, #3 Play Minecraft, #4 Build Timeouts, #5 BUG: Detect wrong commit, #6 Sous Chef, #7 32bit Ubuntu, #8 All in One, #9 Quick Feedback, #10 Freenode, #11 Mailing List, #12 Role Model: qa@it, #13 Role Models: soryu, #14 Only MAJOR MINOR TEENY, #15 Bundler Version, #16 For Capybara, #17 Reduce Call Rake, #18 RAILS_ENV, #19 rake spec vs rspec, #20 rake spec options, #21 rake cucumber options, #22 rspec Format Document, #23 rake COMMAND --trace, #24 Current My Best, #25 bundler_args, --without, #26 capistrano/bundler, #27 Gemfile Group, #28 Remove Unnecessary Gems, #29 Not therubyracer, But nodejs, #30 Use :ci Group?, #31 Actual Each Tests, #32 Use Travis- pro (era of closed beta), #33 Use Travis-pro public beta, #34 Travis-Pro price?, #35 Updating is worthful
  • 17. #0 We are Hiring!
  • 18. #0 We are Hiring! @sanemat October, 2012~
  • 19. #0 We are Hiring! @libkazz
  • 20. #0 We are Hiring! @kei_s
  • 21. #0 We are Hiring! @machida
  • 22. #0 We are Hiring! @is8r
  • 23. #0 We are Hiring! @jugyo September, 2012 ~ November, 2012
  • 24. #0 We are Hiring!
  • 25. #0 Tracks #1 Play Nethack, #2 Play Nethack!, #3 Play Minecraft, #4 Build Timeouts, #5 BUG: Detect wrong commit, #6 Sous Chef, #7 32bit Ubuntu, #8 All in One, #9 Quick Feedback, #10 Freenode, #11 Mailing List, #12 Role Model: qa@it, #13 Role Models: soryu, #14 Only MAJOR MINOR TEENY, #15 Bundler Version, #16 For Capybara, #17 Reduce Call Rake, #18 RAILS_ENV, #19 rake spec vs rspec, #20 rake spec options, #21 rake cucumber options, #22 rspec Format Document, #23 rake COMMAND --trace, #24 Current My Best, #25 bundler_args, --without, #26 capistrano/bundler, #27 Gemfile Group, #28 Remove Unnecessary Gems, #29 Not therubyracer, But nodejs, #30 Use :ci Group?, #31 Actual Each Tests, #32 Use Travis- pro (era of closed beta), #33 Use Travis-pro public beta, #34 Travis-Pro price?, #35 Updating is worthful
  • 26. #5 BUG: Detect wrong commit • Travis-CI detects wrong trigger? Github send wrong hook? - Stack Overflow • Two problems: • Wrong detect as master commit, and sometimes fail • Wrong detect spend actual build time
  • 27. #5 BUG: Detect wrong commit • Travis-CI detects wrong trigger? Github send wrong hook? - Stack Overflow • Two problems: • Wrong detect as master commit, and sometimes fail • Wrong detect spend actual build time
  • 28. #6 Sous Chef • Sous Chef (michaelklishin/sous-chef) • Build your own travis sandbox • $ gem install vagrant --version ">= 1.0" $ hub clone michaelklishin/sous-chef $ cd sous-chef $ cp Vagrantfile.sample Vagrantfile $ vagrant up
  • 29. #6 Sous Chef • Sous Chef (michaelklishin/sous-chef) • Build your own travis sandbox • $ gem install vagrant --version ">= 1.0" $ hub clone michaelklishin/sous-chef $ cd sous-chef $ cp Vagrantfile.sample Vagrantfile $ vagrant up
  • 30. #7 32bit Ubuntu • “oneiric32_base” • Ubuntu 11.10, 32bit • https://github.com/michaelklishin/sous- chef/blob/master/Vagrantfile.sample
  • 31. #7 32bit Ubuntu • “oneiric32_base” • Ubuntu 11.10, 32bit Sad • https://github.com/michaelklishin/sous- chef/blob/master/Vagrantfile.sample
  • 32. #8 All in One • https://github.com/travis-ci/travis- cookbooks/ci_environment
  • 33. #8 All in One • https://github.com/travis-ci/travis- cookbooks/ci_environment • ant, apt, bazaar, bison, build-essential, cassandra, chromium, clang, cmake, composer, couchdb, doxygen, elasticsearch, emacs, erlang, firefox, git, golang, gradle, gvm, haskell, hbase, htop, imagemagick, iptables, java, kerl, kestrel, leiningen, libffi, libgdbm, libncurses, libossp- uuid, libqt4, libreadline, libssl, libxml, libyaml, lighttpd, maven3, memcached, mercurial, mingw32, mongodb, mysql, neo4j-server, networking_basic, nodejs, openssh, openssl, perlbrew, phantomjs, php, phpbuild, phpenv, postgresql, pypy, python, rabbitmq, ragel, ramfs, rebar, redis, riak, rvm, sbt, scons, sphinx, sqlite, subversion, sweeper, sysctl, timezone, travis_build_environment, unarchivers, util-linux, vim, xserver, zeromq, zookeeper
  • 35. #9 Quick Feedback Only Travis-pro
  • 37. #10 Freenode • irc.freenode.net#travis People are gathered, only when the error came out incomprehensible.
  • 38. #11 Mailing List • http://groups.google.com/group/travis-ci
  • 39. #0 We are Hiring!
  • 40. #0 Tracks #1 Play Nethack, #2 Play Nethack!, #3 Play Minecraft, #4 Build Timeouts, #5 BUG: Detect wrong commit, #6 Sous Chef, #7 32bit Ubuntu, #8 All in One, #9 Quick Feedback, #10 Freenode, #11 Mailing List, #12 Role Model: qa@it, #13 Role Models: soryu, #14 Only MAJOR MINOR TEENY, #15 Bundler Version, #16 For Capybara, #17 Reduce Call Rake, #18 RAILS_ENV, #19 rake spec vs rspec, #20 rake spec options, #21 rake cucumber options, #22 rspec Format Document, #23 rake COMMAND --trace, #24 Current My Best, #25 bundler_args, --without, #26 capistrano/bundler, #27 Gemfile Group, #28 Remove Unnecessary Gems, #29 Not therubyracer, But nodejs, #30 Use :ci Group?, #31 Actual Each Tests, #32 Use Travis- pro (era of closed beta), #33 Use Travis-pro public beta, #34 Travis-Pro price?, #35 Updating is worthful
  • 41. #12 Role Model: qa@it Travis CIでサーバ側のブラウザはどう設定す れば良い? - QA@IT language: ruby rvm: 1.9.3 bundler_args: --without development:production before_install: gem update bundler before_script: - RAILS_ENV=test rake db:create db:test:load --quiet - export DISPLAY=:99.0 - sh -e /etc/init.d/xvfb start
  • 42. #12 Role Model: qa@it Travis CIでサーバ側のブラウザはどう設定す れば良い? - QA@IT language: ruby rvm: 1.9.3 bundler_args: --without development:production 8 lines before_install: gem update bundler before_script: - RAILS_ENV=test rake db:create db:test:load --quiet - export DISPLAY=:99.0 - sh -e /etc/init.d/xvfb start
  • 43. #13 Role Models: soryu Gather .travis.yml sanemat/soryu
  • 44. #13 Role Models: soryu Source Gather .travis.yml sanemat/soryu O R Y U
  • 45. #13 Role Models: soryu Source Gather .travis.yml sanemat/soryu O R Y U Please Pull Request
  • 46. #0 We are Hiring!
  • 47. #0 Tracks #1 Play Nethack, #2 Play Nethack!, #3 Play Minecraft, #4 Build Timeouts, #5 BUG: Detect wrong commit, #6 Sous Chef, #7 32bit Ubuntu, #8 All in One, #9 Quick Feedback, #10 Freenode, #11 Mailing List, #12 Role Model: qa@it, #13 Role Models: soryu, #14 Only MAJOR MINOR TEENY, #15 Bundler Version, #16 For Capybara, #17 Reduce Call Rake, #18 RAILS_ENV, #19 rake spec vs rspec, #20 rake spec options, #21 rake cucumber options, #22 rspec Format Document, #23 rake COMMAND --trace, #24 Current My Best, #25 bundler_args, --without, #26 capistrano/bundler, #27 Gemfile Group, #28 Remove Unnecessary Gems, #29 Not therubyracer, But nodejs, #30 Use :ci Group?, #31 Actual Each Tests, #32 Use Travis- pro (era of closed beta), #33 Use Travis-pro public beta, #34 Travis-Pro price?, #35 Updating is worthful
  • 48. #14 Only MAJOR MINOR TEENY rvm: - 1.9.3
  • 49. #14 Only MAJOR MINOR TEENY rvm: Do not specify - 1.9.3 patch level like 1.9.3-p327
  • 50. #15 Bundler Version before_install: - gem update bundler
  • 51. #15 Bundler Version before_install: - gem update bundler bundle --version #=> 1.1 bundle --version #=> 1.2
  • 52. #16 For Capybara before_script: - export DISPLAY=:99.0 - sh -e /etc/init.d/xvfb start
  • 53. #16 For Capybara before_script: - export DISPLAY=:99.0 - sh -e /etc/init.d/xvfb start
  • 54. #17 Reduce Call Rake before_script: - rake db:create - rake db:migrate script: - rake spec before_script: - rake db:create db:migrate script: - rake spec
  • 55. #17 Reduce Call Rake before_script: - rake db:create - rake db:migrate script: - rake spec before_script: - rake db:create db:migrate script: - rake spec
  • 56. #18 RAILS_ENV - rake db:create - RAILS_ENV=test rake db:create
  • 57. #18 RAILS_ENV - rake db:create development, test - RAILS_ENV=test rake db:create test
  • 58. #19 rake spec vs rspec $ rake spec $ rspec
  • 59. #19 rake spec vs rspec $ rake spec purge, migrate, test $ rspec only test
  • 60. #20 rake spec options $ rake spec SPEC=path/to/file SPEC_OPT=’-fd’ $ rspec -fd path/to/file
  • 61. #20 rake spec options SPEC, SPEC_OPT $ rake spec SPEC=path/to/file SPEC_OPT=’-fd’ $ rspec -fd path/to/file
  • 62. #21 rake cucumber options $ rake cucumber FEATURE=path/to/file $ cucumber path/to/file
  • 63. #21 rake cucumber options FEATURE $ rake cucumber FEATURE=path/to/file $ cucumber path/to/file
  • 64. #22 rspec Format Document $ rspec -fd --color
  • 65. #22 rspec Format Document $ rspec -fd --color
  • 66. #23 rake COMMAND --trace $ rake db:migrate --trace
  • 67. #23 rake COMMAND --trace $ rake db:migrate --trace
  • 68. #24 Current My Best before_script: - RAILS_ENV=test bundle exec rake db:create db:schema:load script: - bundle exec rspec -fd
  • 69. #24 Current My Best before_script: - RAILS_ENV=test bundle exec rake db:create db:schema:load script: - bundle exec rspec -fd
  • 70. #0 We are Hiring!
  • 71. #0 Tracks #1 Play Nethack, #2 Play Nethack!, #3 Play Minecraft, #4 Build Timeouts, #5 BUG: Detect wrong commit, #6 Sous Chef, #7 32bit Ubuntu, #8 All in One, #9 Quick Feedback, #10 Freenode, #11 Mailing List, #12 Role Model: qa@it, #13 Role Models: soryu, #14 Only MAJOR MINOR TEENY, #15 Bundler Version, #16 For Capybara, #17 Reduce Call Rake, #18 RAILS_ENV, #19 rake spec vs rspec, #20 rake spec options, #21 rake cucumber options, #22 rspec Format Document, #23 rake COMMAND --trace, #24 Current My Best, #25 bundler_args, --without, #26 capistrano/bundler, #27 Gemfile Group, #28 Remove Unnecessary Gems, #29 Not therubyracer, But nodejs, #30 Use :ci Group?, #31 Actual Each Tests, #32 Use Travis- pro (era of closed beta), #33 Use Travis-pro public beta, #34 Travis-Pro price?, #35 Updating is worthful
  • 72. #25 bundler_args, -- without bundler_args: --deployment --without development production
  • 73. #25 bundler_args, -- without bundler_args: --deployment --without development production
  • 77. #27 Gemfile Group Gemfile Gemfileのgroup で:production, :development, :test 以外 は気をつけて使う « 實 松アウトプット
  • 78. #28 Remove Unnecessary Gems Remove debugger, therubyracer(libv8) from Travis-CI Environment
  • 79. #28 Remove Unnecessary Gems Remove debugger, therubyracer(libv8) from Travis-CI Environment Travis-ci環境からdebuggerは 外しておけ « 實松アウト プット
  • 80. #29 Not therubyracer, But nodejs x therubyracer o nodejs
  • 81. #29 Not therubyracer, But nodejs x therubyracer o nodejs Travis-CI has Node.js
  • 82. #30 Use :ci Group? Use debugger, pry- rails in test environment, but these are unnecessary in travis environment group :ci
  • 83. #30 Use :ci Group? Use debugger, pry- bundler-args: rails in test - without environment, but development these are production test unnecessary in travis environment capistrano :set, :without: group :ci [:development, :test, :ci]
  • 84. #31 Actual Each Tests Small toy app depends on spin-up time, but actual mostly spends each tests.
  • 85. #31 Actual Each Tests Small toy app database cleaner, depends on spin-up fixture, fixture time, but actual replacement, mock, mostly spends each stub, ... tests.
  • 86. #0 We are Hiring!
  • 87. #0 Tracks #1 Play Nethack, #2 Play Nethack!, #3 Play Minecraft, #4 Build Timeouts, #5 BUG: Detect wrong commit, #6 Sous Chef, #7 32bit Ubuntu, #8 All in One, #9 Quick Feedback, #10 Freenode, #11 Mailing List, #12 Role Model: qa@it, #13 Role Models: soryu, #14 Only MAJOR MINOR TEENY, #15 Bundler Version, #16 For Capybara, #17 Reduce Call Rake, #18 RAILS_ENV, #19 rake spec vs rspec, #20 rake spec options, #21 rake cucumber options, #22 rspec Format Document, #23 rake COMMAND --trace, #24 Current My Best, #25 bundler_args, --without, #26 capistrano/bundler, #27 Gemfile Group, #28 Remove Unnecessary Gems, #29 Not therubyracer, But nodejs, #30 Use :ci Group?, #31 Actual Each Tests, #32 Use Travis- pro (era of closed beta), #33 Use Travis-pro public beta, #34 Travis-Pro price?, #35 Updating is worthful
  • 88. #32 Use Travis-pro (era of closed beta) Travis CI: The Travis Plans
  • 89. #33 Use Travis-pro public beta Travis CI: Shipping the new Travis CI web UI for Travis Pro
  • 90. #33 Use Travis-pro public beta Travis CI: Shipping the new Travis CI web UI for Travis Pro December 27, 2012
  • 91. #34 Travis-Pro price? Travis CI: The Travis Plans
  • 92. #34 Travis-Pro price? Travis CI: The Travis Plans small plan is $129 per month, and our big plan is $249 per month
  • 93. #35 Updating is worthful Automatical update causes pain Temporarily, but this bring happy, I think.
  • 94. #0 Tracks #1 Play Nethack, #2 Play Nethack!, #3 Play Minecraft, #4 Build Timeouts, #5 BUG: Detect wrong commit, #6 Sous Chef, #7 32bit Ubuntu, #8 All in One, #9 Quick Feedback, #10 Freenode, #11 Mailing List, #12 Role Model: qa@it, #13 Role Models: soryu, #14 Only MAJOR MINOR TEENY, #15 Bundler Version, #16 For Capybara, #17 Reduce Call Rake, #18 RAILS_ENV, #19 rake spec vs rspec, #20 rake spec options, #21 rake cucumber options, #22 rspec Format Document, #23 rake COMMAND --trace, #24 Current My Best, #25 bundler_args, --without, #26 capistrano/bundler, #27 Gemfile Group, #28 Remove Unnecessary Gems, #29 Not therubyracer, But nodejs, #30 Use :ci Group?, #31 Actual Each Tests, #32 Use Travis- pro (era of closed beta), #33 Use Travis-pro public beta, #34 Travis-Pro price?, #35 Updating is worthful
  • 95. #0 We are Hiring!