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
810
みなさん、分かっていますか / What is a difference?
takai
1
930
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
690
Microservices in Action
takai
36
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
2025 컴포즈 마법사
jisungbin
0
110
自動テストを活かすためのテスト分析・テスト設計の進め方/JaSST25 Shikoku
goyoki
2
620
Private APIの呼び出し方
kishikawakatsumi
3
860
Swift Concurrency 年表クイズ
omochi
3
230
オフライン対応!Flutterアプリに全文検索エンジンを実装する @FlutterKaigi2025
itsmedreamwalker
2
190
AI駆動開発ライフサイクル(AI-DLC)のホワイトペーパーを解説
swxhariu5
0
670
AI POSにおけるLLM Observability基盤の導入 ― サイバーエージェントDXインターン成果報告
hekuchan
0
500
レイトレZ世代に捧ぐ、今からレイトレを始めるための小径
ichi_raven
0
290
Java_プロセスのメモリ監視の落とし穴_NMT_で見抜けない_glibc_キャッシュ問題_.pdf
ntt_dsol_java
0
140
KoogではじめるAIエージェント開発
hiroaki404
1
460
問題の見方を変える「システム思考」超入門
panda_program
0
190
Kotlin 2.2が切り拓く: コンテキストパラメータで書く関数型DSLと新しい依存管理のかたち
knih
0
420
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
84
9.3k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Gamification - CAS2011
davidbonilla
81
5.5k
Visualization
eitanlees
150
16k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Balancing Empowerment & Direction
lara
5
740
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Scaling GitHub
holman
463
140k
A better future with KSS
kneath
239
18k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
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
$*ͷՁΛकΔߦಈ ɾҙਤ͠ͳ͍มߋΛ༧͢Δ ɾ࠶ݱՄೳͳΑ͏ʹࣗಈԽ͢Δ ɾϦιʔεใΛू͢Δ
;ͭ͏ʹ͍ͯ͠Δ ʹΔ͖͜ͱΛΔ ʹৗʹͦ͏͋ΔΑ͏ʹ͢Δ