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
Jenkins環境運用に関するSWETとしての取り組み
Search
Hisashi.Iguchi
January 31, 2020
Technology
1.3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Jenkins環境運用に関するSWETとしての取り組み
Hisashi.Iguchi
January 31, 2020
More Decks by Hisashi.Iguchi
See All by Hisashi.Iguchi
Jenkins PipelineでのShared Librariesの活用
hisa9chi
0
1.2k
EC2 Mac インスタンスに入門してみた
hisa9chi
0
1.6k
20200805_Server版を見捨てないで_Cloud版の機能欲しいんです_.pdf
hisa9chi
0
410
MacStadium使ってみた
hisa9chi
1
2.8k
サポートは強力な味方
hisa9chi
2
530
Bitriseの社内提供へ
hisa9chi
6
6.6k
CircleCI first-step
hisa9chi
2
1.8k
Other Decks in Technology
See All in Technology
Oracle Cloud Infrastructure:2026年6月度サービス・アップデート
oracle4engineer
PRO
1
380
Text-to-SQLをAgentCoreで実現し、生成されるSQLの精度を定量的に評価する
yakumo
2
120
UIパーツの設計を「型」から読み解く 〜TSKaigiのセッションから得た学び〜
yud0uhu
0
110
AIエージェントとPhysical AIが拓く製造業の変革(ハノーバーメッセリキャップ)
iotcomjpadmin
0
170
製造現場での生成AIの活用、およびエージェントAIの実装のあり方、AVEVAの取り組み
iotcomjpadmin
0
180
AIは、人間らしい仕事の夢を見るか?─ AI時代のtoB/toEプロダクトを再設計する
techtekt
PRO
0
160
現場のトークンマネジメント
dak2
1
200
When Platform Engineering Meets GenAI
sucitw
0
200
技術・能力を向上する原理原則 #きのこセッションa #きのこ2026
bash0c7
0
150
MySQL & MySQL HeatWave Report - June 2026
freshdaz
0
200
組織における AI-DLC 実践
askul
0
170
トークン最適化のためのユーザーストーリー分析 / User Story Analysis for Token Optimization
oomatomo
0
130
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
247
13k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
200
The agentic SEO stack - context over prompts
schlessera
0
830
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
1.8k
Designing for Performance
lara
611
70k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
310
A Soul's Torment
seathinner
6
3k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Designing for Timeless Needs
cassininazir
1
260
How GitHub (no longer) Works
holman
316
150k
Transcript
Jenkins 2'06:3< SWET # 7 GDM vol.40 %")! Jenkins
0,:3@DeNA Fri. Jan. 31, 2020 $ +* .; &98-; &951; SWET /(!4
*) • $ • 1Hisashi Iguchi2@hisa9chi • •
#( SWET Gr. • • * /' • CI/CD %&.0-!+," • % • CircleCI Japan User Group Community Leaders 2
3 SWET Jenkins SWET 1 4
2 3
4 SWET Jenkins SWET 1 4
2 3
SoftWare Engineer in Test c.f.> Google SET
5 4 3 2 1
6 MISSION 1) • DeNA#/ %0$ • DeNA 2-+,&$
!"*.(' VISION MAKE TESTING FUN, SMART, AND DELIGHTING END-USERS 4 3 2 1
Make Testing Fun, Smart, and Delighting End-Users • Fun •
'2&# • Smart • .-9 * 15/7 • "( !)1 48 • Delighting End-Users • ' $(% 3 ,:60' +) 7 4 3 2 1
8 ! ! https://swet.dena.com/about 4 3 2 1
9 SWET Jenkins SWET 1 4
2 3
• • iOS • Android • OS
• Linux (Ubuntu) • macOS • • Unity 10 1 4 3 2
Jenkins *4 • :! "%51+/6 • &#-8(3 •
$7.'3 • *4&$ • Xcode 4 $ • iOS,0)3 macOS "%/6 • &#%% Unity *4 • Unity Cloud Build 7.9 62%" 11 1 4 3 2
Jenkins ', • &', • +& • '$ •
& master '$! • macOS () 12 1 4 3 2 Jenkins master -*"% .#
Jenkins 37 • .> • & 1 .)37 •
45!&.= • ,:'% &'% • Jenkins / Xcode / Unity / Android NDK • %# (-)(6; • /+9 % • Jenkins 378?9 or 18?9 13 1 4 3 2 "3-8?9 $& or <2*0
Jenkins E< • $!,2 #'' • 1A "' F0,2 •
&*>/8 • C ,2 • . plugin ')& • slave #'' • 6 1A )&3-')& • $! %)=;7 SSH4? D9(B: • slave @+5G 14 1 4 3 2
Jenkins ! • slave • " •
" • # • ! • " 15 1 4 3 2 Jenkins master macOS agent Jenkins master macOS agent Jenkins master macOS agent macOS agent !
16 1 4 3
2
U :Z • +"/Q2WK!$'D • master / slave /*.
• MT9KAN5KB @S • Jenkins plugin OJ • #,)OJ;Y • Jenkinsfile G$&- WebUI#,)3C • Plugin =6 >HOJ9P ?7 • 4#,)I 8K1F • XL(0%VR #,)E< OJ;Y 17 1 4 3 2
D ,G • slave 9=.3> • " 5F#&C: slave 7B&$%&$
• " 7BE*8<1 slave +( 18 1 4 3 2 Jenkins master macOS agent macOS agent !%% !%%; ?'4/ <1 slave +(" A60- 2@)
D 1H • slave E.9" • $#'0 ,47/"2G • 8F=
slave <3?)65@(&;- 5@ • *A 19 1 4 3 2 Jenkins master macOS agent macOS agent ① C: macOS agent ② " ③ %!/+>B
B 'G • 04'G • Jenkins ,/7 !( 78
E; • Jenkins master / slave "2.D <9 • =$ -3)61 "F • =$: %B& • A?'G • 'G • F5*C'G • *C >8# +@ 20 1 4 3 2
21 SWET ! 1 4
3 2
22 SWET Jenkins SWET 1 4
2 3
!. 1. Jenkins )% • master / slave )%$/ •
master / slave(Linux) cloud *+ 2. 1 • Jenkins master 1 • slave 1)-4Linux / macOS5 • ,3#( 3. & • Unity + iOS / Android & 23 1 2 4 3 2' *+"0
24 1. Jenkins 1 2 4 3
Jenkins • • master - slave slave
25 1 2 4 3 macOS agent Linux agent Jenkins master macOS agent Persistent Disk GCP JNLP
Jenkins " • • master - slave 'slave#( 26
1 2 4 3 ! JNLP macOS agent macOS agent ! %&$ Jenkins master Persistent Disk Linux agent GCP
Jenkins • • master - slave slave 27
1 2 4 3 Linux agent Jenkins master Persistent Disk GCP JNLP macOS agent macOS agent OS update
Jenkins • • master - slave slave
28 1 2 4 3 macOS agent Linux agent Jenkins master macOS agent Persistent Disk GCP JNLP
Jenkins • • master - slave #slave
$ 29 1 2 4 3 macOS agent Linux agent Jenkins master macOS agent Persistent Disk GCP JNL P " !
30 " # ! 1 2
4 3
31 2. 1 2 4 3
master ' % • • ubuntu: GCP Terraform
# • Jenkins • Ansible • # • https://github.com/Kuniwak/jenkins-plugin-fixator "# • $(# influxDB / Telegraf / Chronograf / Kapacitor • / • GCP !&"# 32 1 2 4 3
slave /!%- • # • macOS: &' mac
mini *3. • ubuntu: GCP Terraform (# • • Ansible • +"1 • Unity / Xcode / Android NDK 0$ • slave ,' • )2( Telegraf 33 1 2 4 3
slave /!%- • # • macOS: &' mac
mini *3. • ubuntu: GCP Terraform (# • • Ansible • +"1 • Unity / Xcode / Android NDK 0$ • slave ,' • )2( Telegraf 34 1 2 4 3 # for rbenv role install_ruby_versions: - 2.4.5 - 2.5.1 - 2.6.1 global_ruby_version: 2.5.1 # for xcode role xcode_clean: true xcode_versions: - '10.1' default_xcode_version: '10.1' # for android role android_versions: - 25 - 26 - 27 - 28 build_tools_versions: - 25.0.3 - 26.0.2 - 27.0.3 - 28.0.3 # for unity role unity_versions: - 2018.3.3f1 # for jenkins_slave jenkins_slave_name: 'o-12778-mac' jenkins_slave_secret: !vault | $ANSIBLE_VAULT;1.1;AES256 3932356633663834333631663634353731656
slave #' • ) • +! ,
) • *"% *( • https://plugins.jenkins.io/app-detector $& 35 1 2 4 3
slave IA • $" 9G#$"$ • ?C; *A Ansible 2F
• slave B@#$"!<9(2F • #$"!<946%/E 10 • 8,#$" -> &>'3 #- • 5 Ansible .: • D746 =) Ansible H+ 36 1 2 4 3
37 3. 1 2 4 3
Jenkins pipeline % #!/' • "#% #! • %
#*9 3-2)56 • +8 0 .172)56 • (;4: Jenkins Shared Library /' • "<,& $& 38 1 2 4 3
39 Jenkins 1 2 4
3
40 1 2 4 3
41 1 2 4 3
42 TASK [xcode : Install Xcode (NOTE: This task take
a long time. And, it doesn‘t work when Two-Factor Authentication is enable. If you want to check progress, do `sudo tail -f /private/var/root/Library/Caches/XcodeInstall/progress.*`)] *** failed: [unity-macos-1014] (item=11.1) => changed=true cmd: - /var/root/.gem/ruby/2.5.0/bin/xcversion - install - ’11.1’ delta: ‘0:14:18.084891’ end: ‘2019-12-15 20:05:30.908344’ item: ‘11.1’ msg: non-zero return code 1 2 4 3
Ansible Playbook !/' • Xcode Unity ! ! • Xcode
• !$, xcode-install 0' • !.#)* • Unity • !(+ • !1 Unity Hub (+ • !! • brew java8 % ruby !"&- 43 1 2 4 3
44 CI 1 2 4 3
Ansible Playbook &" • OS Vagrant Box( )
• '$ • Test Kitchen ! • -> Ansible Playbook $ -> % # $ 45 1 2 4 3
46 SWET Jenkins SWET 1 4
2 3
) 1. ( 1. %& 2. Jenkins
CI*" 2. +' $ !# 47 1 2 3 4
48 1. 1 2 3 4
1 2 3 #47 • # ,< 30 • macOS
?56" # 47 • MacStadium • CI# 47 • Jenkins % # 47 • Bitirse • !# Unity #=8 +;@ https://blog.bitrise.io/bitrise-in-2019-a-roadmap-preview .: /-1& *($ • CircleCI • #' >92)47,< 49 4
Jenkins 50 macOS agent Linux agent Jenkins master
macOS agent GCS GCP MacStadium macOS agent 1 2 3 4 macOS agent macOS agent Linux agent Cloud CI Bitrise CircleCI
Jenkins 51 Linux agent Jenkins master GCS GCP
MacStadium macOS agent 1 2 3 4 macOS agent macOS agent Linux agent Cloud CI Bitrise CircleCI macOS agent macOS agent PR
Jenkins 52 macOS agent Linux agent Jenkins master macOS
agent GCS GCP 1 2 3 4 Linux agent Cloud CI Bitrise CircleCI MacStadium macOS agent macOS agent macOS agent cron
Jenkins 53 macOS agent Linux agent Jenkins master macOS
agent GCS GCP MacStadium macOS agent 1 2 3 4 macOS agent macOS agent Linux agent Cloud CI Bitrise CircleCI
Jenkins 54 macOS agent Linux agent Jenkins master
macOS agent GCS GCP MacStadium macOS agent 1 2 3 4 macOS agent macOS agent Linux agent Cloud CI Bitrise CircleCI
55 2. 1 2 3 4
1 2 3 CI>/ C9JE67D,K • #' "): C9 5G-
• #'#H@") • Unity Cloud Build Bitrise % )!,1 82 • !& 4I) 0 • αβH@") • % )!<=>/*3;?82 • F?") • % )!<=>/*3;?82 • $( +BH@.A82 56 4
57
• .(OH P0 Jenkins B<K7BJ • Terraform /
Ansible DG • macOS 28 GCP/ BJ • Jenkins B< ?6DG4 -&,)% =5 • BJG +&"*.>@AI • CI 73AM • 1:*#.$ DG .*$+!Q • N9;L -> EF'- • N9 C -> *#.$ 58
59 End.