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
420
MacStadium使ってみた
hisa9chi
1
2.8k
サポートは強力な味方
hisa9chi
2
540
Bitriseの社内提供へ
hisa9chi
6
6.6k
CircleCI first-step
hisa9chi
2
1.8k
Other Decks in Technology
See All in Technology
ダッシュボード"開発"について 〜使われるダッシュボードのつくりかた〜
kimichan
0
190
Multicaで30個のミニプロジェクトをAIエージェント運用して見えてきたこと
eiei114
1
620
なぜ、あなたのエージェントは言うことを聞かないのか
segavvy
1
340
ここは地獄!つらい朝会を体験することで、チームとしてのより良い振る舞いに気づくワークショップ / The stand-up meeting from hell in the game industry
scrummasudar
0
210
OPENLOGI Company Profile for engineer
hr01
1
74k
AIコード生成×サプライチェーン攻撃 — PHPが直面する“二重の信頼問題
shinyasaita
0
450
“それは自分の仕事じゃない"を越えて行け
yuukiyo
1
520
伝票作成AIエージェントを支える、LLMOpsとインフラの選択肢 / AICon2026_takeda
rakus_dev
0
260
書籍セキュアAPIについて
riiimparm
0
160
全社でのソフトウェアサプライチェーン攻撃対策をやってみた with Takumi Guard
z63d
0
260
インフラと開発の垣根を超えていき!〜元AWSインフラエンジニアがAWS開発で奮闘している話〜
hatahata021
3
390
AI時代の開発生産性は、個人技からチーム設計へ
moongift
PRO
4
2.5k
Featured
See All Featured
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
220
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
3
360
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
A Modern Web Designer's Workflow
chriscoyier
698
190k
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
Raft: Consensus for Rubyists
vanstee
141
7.6k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Paper Plane (Part 1)
katiecoart
PRO
1
9.8k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
67
56k
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.