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.2k
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
0
440
キースイッチ潤滑入門 / A Brief Introduction to Lube MX Switches
takai
2
770
みなさん、分かっていますか / What is a difference?
takai
1
860
The Design Philosophy of Kuroko2
takai
3
2.1k
Agile and DevOps with Ruby
takai
2
1k
Software Quality and Testing #1
takai
5
630
Microservices in Action
takai
37
5.2k
Ruby App on Netflix Microservices Stack
takai
6
1k
COOKPAD and Test Automation
takai
19
2.7k
Other Decks in Programming
See All in Programming
React + TextAliveでカッコいいLyric Applicatioinを作ろう!!
tosuri13
0
400
Ebitengineの1vs1ゲーム WebRTCの活用
ponyo877
0
370
Rubyのobject_id
qnighy
6
1.3k
Why Prism?
kddnewton
4
1.7k
From Idea to IDE: Developing Plugins for Android Studio
thisaay
1
140
GraphQLの魅力を引き出すAndroidクライアント実装
morux2
3
410
実践!難読化ガイド
mitchan
0
140
Mastering AsyncSequence - 使う・作る・他のデザインパターン(クロージャ、Delegate など)から移行する
treastrain
4
1.6k
RAGの回答精度評価用のQAデータセットを生成AIに作らせた話
kurahara
0
250
事業フェーズの変化に対応する 開発生産性向上のゼロイチ
masaygggg
0
190
マルチモジュールにおけるテスト最適化
fxwx23
0
200
ECMAScript、Web標準の型はどう管理されているか / How ECMAScript and Web standards types are maintained
petamoriken
3
390
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Become a Pro
speakerdeck
PRO
22
4.9k
What’s in a name? Adding method to the madness
productmarketing
PRO
21
3k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.2k
Building Your Own Lightsaber
phodgson
101
6k
Practical Orchestrator
shlominoach
185
10k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
230
17k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
103
48k
Happy Clients
brianwarren
96
6.6k
Build The Right Thing And Hit Your Dates
maggiecrowley
30
2.3k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
663
120k
Pencils Down: Stop Designing & Start Developing
hursman
119
11k
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
$*ͷՁΛकΔߦಈ ɾҙਤ͠ͳ͍มߋΛ༧͢Δ ɾ࠶ݱՄೳͳΑ͏ʹࣗಈԽ͢Δ ɾϦιʔεใΛू͢Δ
;ͭ͏ʹ͍ͯ͠Δ ʹΔ͖͜ͱΛΔ ʹৗʹͦ͏͋ΔΑ͏ʹ͢Δ