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
520
Bitriseの社内提供へ
hisa9chi
6
6.6k
CircleCI first-step
hisa9chi
2
1.8k
Other Decks in Technology
See All in Technology
Oracle Cloud Infrastructure IaaS 新機能アップデート 2026/3 - 2026/5
oracle4engineer
PRO
1
190
美味しいスイスチーズを作ろう🧀🐭
taigamikami
1
240
AI Adaptable なテストを整える工夫 / Ways to Make Your Tests AI-Adaptable
bitkey
PRO
3
210
SIer20年! 培ったスキルがスタートアップで輝く時
shucho0103
0
350
DevOps Agentで始めるAWS運用 〜フロンティアエージェントが変える運用の現場〜
nyankotaro
1
220
AI活用を推進するために ファインディが下した、一つの小さな決断
starfish719
0
250
AIプラットフォームを運用し続けるための可観測性
tanimuyk
4
1.1k
AI-DLCを活用した高品質・安全なAI駆動開発実践 / AI Driven Development
yoshidashingo
1
360
新規ゲーム開発におけるAI駆動開発のリアル
202409e2
0
2.5k
ITエンジニアを取り巻く環境とキャリアパス / A career path for Japanese IT engineers
takatama
4
1.8k
関西に縁あるMicrosoft MVPsが語るCopilotの未来
kasada
0
1.2k
もりもり新機能を一挙紹介! AgentCoreに入門して、AWS上にAIエージェントを構築しよう
minorun365
PRO
6
810
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
528
40k
The browser strikes back
jonoalderson
0
1.1k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
420
Code Review Best Practice
trishagee
74
20k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
460
It's Worth the Effort
3n
188
29k
For a Future-Friendly Web
brad_frost
183
10k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
360
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
Google's AI Overviews - The New Search
badams
0
1k
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.