Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
How We Use Jenkins?
Search
Naoto Takai
January 12, 2015
Programming
21
8.5k
How We Use Jenkins?
At Jenkins user conference 2015 Tokyo
Naoto Takai
January 12, 2015
Tweet
Share
More Decks by Naoto Takai
See All by Naoto Takai
Building the Perfect Custom Keyboard
takai
1
630
キースイッチ潤滑入門 / A Brief Introduction to Lube MX Switches
takai
2
800
みなさん、分かっていますか / What is a difference?
takai
1
920
The Design Philosophy of Kuroko2
takai
3
2.2k
Agile and DevOps with Ruby
takai
2
1.1k
Software Quality and Testing #1
takai
6
680
Microservices in Action
takai
37
5.4k
Ruby App on Netflix Microservices Stack
takai
6
1.1k
COOKPAD and Test Automation
takai
19
2.8k
Other Decks in Programming
See All in Programming
AI時代のUIはどこへ行く?
yusukebe
21
9.8k
2025年版 サーバーレス Web アプリケーションの作り方
hayatow
20
23k
メモリ不足との戦い〜大量データを扱うアプリでの実践例〜
kwzr
1
290
Build your own WebP codec in Swift
kishikawakatsumi
2
330
AIエージェント時代における TypeScriptスキーマ駆動開発の新たな役割
bicstone
4
890
Performance for Conversion! 分散トレーシングでボトルネックを 特定せよ
inetand
0
5.7k
CSC509 Lecture 01
javiergs
PRO
1
420
Learn CPU architecture with Assembly
akkeylab
1
710
CSC509 Lecture 02
javiergs
PRO
0
360
Ruby×iOSアプリ開発 ~共に歩んだエコシステムの物語~
temoki
0
860
How Android Uses Data Structures Behind The Scenes
l2hyunwoo
1
530
機能追加とリーダー業務の類似性
rinchoku
2
1.4k
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Typedesign – Prime Four
hannesfritz
42
2.8k
Context Engineering - Making Every Token Count
addyosmani
3
93
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.8k
How to train your dragon (web standard)
notwaldorf
96
6.2k
Thoughts on Productivity
jonyablonski
70
4.8k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
860
Raft: Consensus for Rubyists
vanstee
140
7.1k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Side Projects
sachag
455
43k
Building Applications with DynamoDB
mza
96
6.6k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
830
Transcript
ΫοΫύουʹ͓͚Δ+FOLJOTͷ׆༻
None
݄ؒར༻ऀͷ ສਓҎ্ ϨγϐສҎ্
3VCZ 3VCZPO3BJMT "NB[PO8FC4FSWJDFT
݁ɿ;ͭ͏ʹ͍ͯ͠Δ
ΫοΫύουͰ +FOLJOTΛ͍ͬͯ·ͤΜ ͓ͼ
͓Ή͖Μ͢
DJTMBWFEPDLFS DJTMBWFSVCZ OPEFT DJTMBWFBOESPJE DJTMBWFJPT DJNBTUFS SSSTQFDNBTUFS SSSTQFDXPSLFS "84 0OQSFNJTFT
ϚελɾεϨʔϒߏ w αʔόߏཧ1VQQFUʗ*UBNBF w ϓϥοτϑΥʔϜɾϛυϧΣΞ w ΫϥυͱΦϯϓϨϛεڥ w ϥϕϧͰϊʔυΛཧ
DJTMBWFSVCZ w "84্Ͱϊʔυ͕Քಈ w ؒϊʔυʹॖୀӡస w SCFOWͰ3VCZόʔδϣϯཧ ϥϕϧͰϥΠϒϥϦΛղܾ
STQFD describe SymbolStack do ... context 'when stack is empty'
do subject(:empty_stack) { SymbolStack.new } describe '#size' do it { expect(empty_stack.size).to eq 0 } end
DBQZCBSBXFCLJU feature 'User login' do scenario 'successful login' do visit
login_path fill_in 'Login', with: '
[email protected]
' fill_in 'Password', with: 'password' click_link 'Submit' expect(current_path).to root_path end
DJTMBWFEPDLFS w %PDLFS&OHJOF༻$*ڥ w ϏϧυɾςετɾϨδετϦొ
DJTMBWF\BOESPJE JPT^ w ΦϑΟεͷαʔόϧʔϜʹઃஔ w "OESPJE࣮ػͰςετ w 9DPEFͷόʔδϣϯཧͰྀۤ
DJTMBWFEPDLFS DJTMBWFSVCZ OPEFT DJTMBWFBOESPJE DJTMBWFJPT DJNBTUFS SSSTQFDNBTUFS SSSTQFDXPSLFS "84 0OQSFNJTFT
ͳͥɺ$*Λ͍ͯ͠Δͷ͔ʁ
ʮຖͷྉཧΛָ͠Έʹʯ
ߏங͢Δ ܭଌ͢Δ ֶͿ σʔλ ΞΠσΞ
ҙਤ͠ͳ͍มߋΛ༧Ͱ͖Δ ࠶ݱՄೳͰࣗಈԽ͞Ε͍ͯΔ ϦιʔεใΛूͰ͖Δ ʹ$*ͰकΔ͖Ձ
ҙਤ͠ͳ͍มߋΛ༧Ͱ͖Δ ɾλʔϯΞϥϯυΛ͔͘͢Δ ɾ͙͢ʹࣦഊΛ͑Δ ɾෆ۩߹Λ์ஔͤ͞ͳ͍
։ൃऀेʹၗຫͳͷͰɺ ͰΠϥΠϥ͠ɺͰΩϨΔɻ
w ϚϧνϓϩηεԽʢQBSBMMFM@UFTUTʣ w ࢄԽ w ୈ̍ੈSFNPUF@TQFD w ୈ̎ੈSFNPUF@TQFD w SSSTQFD
None
None
εϙοτΠϯελϯεΛར༻ ϓϩηεఀࢭ͔Βͷࣗಈ෮ؼ ࣦഊͨ͠ςετͷࣗಈ࠶࣮ߦ ςετ࣮ߦॱংͷ࠷దԽ ͔͔࣌ؒΔςετͷػత࣮ߦ
Φʔϓϯιʔε
None
ҙਤ͠ͳ͍มߋΛ༧Ͱ͖Δ ɾλʔϯΞϥϯυΛ͔͘͢Δ ɾ͙͢ʹࣦഊΛ͑Δ ɾෆ۩߹Λ์ஔͤ͞ͳ͍
3334QFD$*'BJMFEFYBNQMFTPGDPPLQBE@SSSTQFD SSSTQFDUBTLTFUCCGECGD STQFDTQFDDPOUSPMMFSTNZ@DPOUSPMMFS@TQFDSC EC "MJDF$PPQFS NPOUITBHP STQFDTQFDDPOUSPMMFSTNZ@DPOUSPMMFS@TQFDSC
DDBD #PC.BSMFZ NPOUITBHP STQFDTQFDDPOUSPMMFSTNZ@DPOUSPMMFS@TQFDSC DBGC $IBSMJF1BSLFS NPOUITBHP +FOLJOTDPPLQBE@SSSTQFD'"*-63&BGUFSҎ্ 0QFO +FOLJOT$IBOHFECZ!EBWF!FWF KFOLJOTIJQDIBUQVCMJTIFS SSSTQFD
None
KFOLJOTIJQDIBUQVCMJTIFS w )JQ$IBU1MVHJOͱͷҧ͍ w +FOLJOTSC w ࣦഊ࣌ʹϝϯγϣϯ͢Δػೳ w ޭϏϧυΛ௨͠ͳ͍ػೳ
ҙਤ͠ͳ͍มߋΛ༧Ͱ͖Δ ɾλʔϯΞϥϯυΛ͔͘͢Δ ɾ͙͢ʹࣦഊΛ͑Δ ɾෆ۩߹Λ์ஔͤ͞ͳ͍
։ൃऀจԽͱن ɾίʔυͷڞಉॴ༗ʢPXOFSTIJQʣ ɾِཅੑɺׂΕ૭ཧ ɾܧଓతσϦόϦʔʢޙड़ʣ
l$PMMFDUJWF0XOFSTIJQFODPVSBHFTFWFSZPOFUP DPOUSJCVUFOFXJEFBTUPBMMTFHNFOUTPGUIF QSPKFDU"OZEFWFMPQFSDBODIBOHFBOZMJOFPG DPEFUPBEEGVODUJPOBMJUZ pYCVHT JNQSPWF EFTJHOTPSSFGBDUPS/PPOFQFSTPOCFDPNFTB CPUUMFOFDLGPSDIBOHFTl IUUQXXXFYUSFNFQSPHSBNNJOHPSHSVMFTDPMMFDUJWFIUNM
ِཅੑΛආ͚Δ ɾ࣌ؒʹґଘ͢Δͷ ɾΈ߹Θͤʹґଘ͢Δͷ ɾੑೳʹґଘ͢Δͷ
ِཅੑ͕͋Δͱʜʜ ɾΤϥʔΛؾʹ͠ͳ͘ͳͬͯ͠·͏ ɾຊͷΤϥʔΛݟಀͯ͠͠·͏ ˠϞϥϧԼɺڟѱ൜ࡑͷଟൃ
None
w ࠷ޙʹޭͨ͠ϏϧυΛ܁Γฦ͠ ࣮ߦͯ͠ΈΔ w ཌ݄ॳʹγεςϜ࣌ؒΛઃఆͯ͠ ࣮ߦͯ͠ΈΔ w ࣦഊͨ͠ςετΛ࠶࣮ߦͯ͠ΈΔ
ҙਤ͠ͳ͍มߋΛ༧Ͱ͖Δ ࠶ݱՄೳͰࣗಈԽ͞Ε͍ͯΔ ϦιʔεใΛूͰ͖Δ ʹ$*ͰकΔ͖Ձ
ʮͳͥ$*Λಋೖ͍ͯ͠ͳ͍ͷͰ͔͢ʁʯ ʮฐࣾͷΤϯδχΞҙ͕ࣝߴ͍ͨΊɺϩʔΧϧ ڥͰςετΛ࣮ߦͤͣʹɺϦϙδτϦʹιʔε ίʔυΛίϛοτ͠·ͤΜʢΩϦοʯ
ʮܧଓతσϦόϦʔιϑτΣΞ։ൃʹ͓͚Δ نͷͻͱͭͩɻʜʜܧଓతσϦόϦʔΛ࣮ݱ͢ Δʹɺ։ൃνʔϜ͕ιϑτΣΞΛܧଓతʹ౷ ߹͠ɺ࣮ߦϑΝΠϧΛϏϧυ͠ɺ͞ΒʹͦΕΛ ࣗಈతʹςετͯ͠Λݕग़͢Ε͍͍ɻʯ IUUQDBQTDUSMRVFKQLENTOSXJLJCMJLJ $POUJOVPVT%FMJWFSZ
ՌϦϙδτϦ όʔδϣϯίϯτϩʔϧ ιʔείʔυ ઃఆ ίϛοτεςʔδ ड͚ೖΕεςʔδ ड͚ೖΕςετ ڥઃఆɺσϓϩΠɺ εϞʔΫςετ ੑೳςετ
ڥઃఆɺσϓϩΠɺ εϞʔΫςετ ຊ൪ڥ ڥઃఆɺσϓϩΠɺ εϞʔΫςετ ίϯύΠϧ ίϛοτςετ Ռ࡞ ίʔυղੳ ڥઃఆ σϓϩΠ εϞʔΫςετ ड͚ೖΕςετ ઃఆ +F[)VNCMFɺ%BWJE'BSMFZʰܧଓతσϦόϦʔʱ
ʮτϤλੜ࢈ํࣜͰΘΕΔʰࣗಈԽʱɺχϯ ϕϯͷ͘ʰࣗಇԽʱͰ͢ɻʜʜʰࣗಇʱͱɺ ػցʹળ͠ѱ͠Λஅͤ͞ΔஔΛϏϧτΠϯ͠ ͨػցͰ͋Γɺʜʜʰҟৗ͕͋Εػց͕ࢭ·Δʱ ͜ͱͰɺෆྑੜ࢈͞ΕͣɺͻͱΓͰԿͷ ػցΛӡసͰ͖ΔͷͰɺੜ࢈ੑΛඈ༂తʹ্͞ ͤΔ͜ͱ͕Ͱ͖·ͨ͠ɻʯ IUUQXXXUPZPUBDPKQKQODPNQBOZWJTJPOQSPEVDUJPO@TZTUFNKJEPLBIUNM
$*ͰͷࣗಈԽ ɾςετͷࣗಈԽ ɾΞηοτͷੜͱཧͷࣗಈԽ ɾσϓϩΠͷࣗಈԽ ɾ௨ɾهͷࣗಈԽ
HJUIVC DJNBTUFS SSSTQFDNBTUFS SSSTQFDXPSLFS OPEFT HSPXUIGPSFDBTU NBNJZB BQQ
OPEFT IJQDIBU BQQTUBHJOH
None
ҙਤ͠ͳ͍มߋΛ༧Ͱ͖Δ ࠶ݱՄೳͰࣗಈԽ͞Ε͍ͯΔ ϦιʔεใΛूͰ͖Δ ʹ$*ͰकΔ͖Ձ
ϦιʔεใΛूͰ͖Δ ɾΞηοτͷੜͱཧ ɾ੩తղੳʢΧόϨοδɾηΩϡϦςΟʣ ɾهͱՄࢹԽ
DJNBTUFS SSSTQFDNBTUFS NBNJZB BQQTUBHJOH ΞηοτͷίϯύΠϧʢඞཁ࣌ʣ HJUIVC SSSTQFDͷ࣮ߦ มߋͷऔಘ Ξηοτอଘ Ξηοτ৴
None
$*ͷՁΛकΔߦಈ ɾҙਤ͠ͳ͍มߋΛ༧͢Δ ɾ࠶ݱՄೳͳΑ͏ʹࣗಈԽ͢Δ ɾϦιʔεใΛू͢Δ
;ͭ͏ʹ͍ͯ͠Δ ʹΔ͖͜ͱΛΔ ʹৗʹͦ͏͋ΔΑ͏ʹ͢Δ