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
ベンチャー企業がCircleCIを選んだ理由と活用方法
Search
Yasuhiroki
March 05, 2019
Technology
1
790
ベンチャー企業がCircleCIを選んだ理由と活用方法
第2回CircleCI ユーザーコミュニティミートアップ 発表内容
https://circleci.connpass.com/event/120371/
Yasuhiroki
March 05, 2019
Tweet
Share
More Decks by Yasuhiroki
See All by Yasuhiroki
自分に勉強させるには
yasuhiroki
1
420
Android Studio `Command+Shift+A`
yasuhiroki
0
340
シェルスクリプトをサーバーレスで cron したい
yasuhiroki
1
810
rails new コマンド
yasuhiroki
1
750
自動化を習慣化する
yasuhiroki
2
15k
GitHub Actions Parallel Testing
yasuhiroki
1
1.2k
circleci.vim
yasuhiroki
0
1.6k
Rubyの正規表現を調べてみた
yasuhiroki
0
840
開発者(個人)のためのJenkins 運用編
yasuhiroki
0
2.2k
Other Decks in Technology
See All in Technology
All You Need Is Kusa 〜Slackデータで始めるデータドリブン〜
jonnojun
0
140
20250408 AI Agent workshop
sakana_ai
PRO
15
3.5k
Spring Bootで実装とインフラをこれでもかと分離するための試み
shintanimoto
4
410
こんなデータマートは嫌だ。どんな? / waiwai-data-meetup-202504
shuntak
6
1.7k
大AI時代で輝くために今こそドメインにディープダイブしよう / Deep Dive into Domain in AI-Agent-Era
yuitosato
1
270
テキスト解析で見る PyCon APAC 2025 セッション&スピーカートレンド分析
negi111111
0
280
NLP2025 参加報告会 / NLP2025
sansan_randd
4
510
Micro Frontends: Necessity, Implementation, and Challenges
rainerhahnekamp
2
350
【日本Zabbixユーザー会】LLDを理解するときの勘所 〜LLDのある世界を楽しもう!〜
yoshitake945
0
120
Webアプリを Lambdaで動かすまでに考えること / How to implement monolithic Lambda Web Application
_kensh
7
1.2k
IVRyにおけるNLP活用と NLP2025の関連論文紹介
keisukeosone
0
180
ソフトウェア開発現代史: "LeanとDevOpsの科学"の「科学」とは何か? - DORA Report 10年の変遷を追って - #DevOpsDaysTokyo
takabow
0
200
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.3k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.7k
How STYLIGHT went responsive
nonsquared
99
5.5k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Speed Design
sergeychernyshev
29
880
GraphQLの誤解/rethinking-graphql
sonatard
71
10k
GitHub's CSS Performance
jonrohan
1030
460k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Bash Introduction
62gerente
611
210k
Transcript
ϕϯνϟʔاۀ͕ CircleCIΛબΜͩཧ༝ ͱ׆༻ํ๏ A10 Lab Inc. @yasuhiroki
ࣗݾհ
ࣗݾհ Workflow
Yasuhiroki (@duck_yasuhiroki)
CircleCI User Community ӡӦ
͖ͳͷ / ۤखͳͷ
Workflowશମ
ͪΌΜͱ Job ॻ͍ͨΑ
ࣗݾհ ৄࡉ • yasuhiroki (tw: @duck_yasuhiroki) • CircleCI User Community
ӡӦϝϯόʔ • CircleCIྺ 2.0 ͕ग़ͨࠒ͔Β • ͦͷલ Jenkins ͓͡͞Μ
ϕϯνϟʔاۀ͕CircleCIΛ બΜͩཧ༝ͱ׆༻ํ๏
ฐࣾհ • A10 Lab Inc. • 20172݄ʹιχʔ͔Βಠཱ • ࡾओࢭΞϓϦʮΈΜνϟϨʯ
None
ϝϯόʔ 10໊ (ΠϯλʔϯؚΉ)
ΤϯδχΞ 7໊ (ΠϯλʔϯؚΉ)
ΤϯδχΞͷ୲༁ • Android: 3໊ • iOS: 4໊ • API: 3໊
• AWS 2໊
ΤϯδχΞΑΓଟ͍ • Android: 3໊ • iOS: 4໊ • API: 3໊
• AWS 2໊ > 7
ΤϯδχΞΑΓଟ͍ • Android: 3໊ • iOS: 4໊ • API: 3໊
• AWS 2໊ 1ਓN
ଞʹ
͓͍߹Θͤ ɹ=> ରԠ͠·͢ ετΞϨϏϡʔ ɹ=> ରԠ͠·͢ αʔϏε௨ใ ɹ=> ରԠ͠·͢
։ൃ͢Δ࣌ؒݶΒΕ͍ͯΔ
ͦΜͳڥͰ CircleCI Λͳͥબͼ CircleCI ͰԿΛͨ͠ͷ͔
CircleCIΛબΜͩཧ༝
CircleCI ΛબΜͩཧ༝ • ར༻͢ΔαʔϏεΛݮΒ͍ͨ͠
ར༻͢ΔαʔϏεΛݮΒ͍ͨ͠ • ࣾһ͕গͳ͍ͷͰ 1ਓN • Android/iOS/Rails ͳͲԣஅͯ͠୲ • ݶΒΕͨϦιʔεͷதͰΓ͘Γ
Ϧιʔε͕ݶΒΕ͍ͯΔͷͰ • αʔϏεΛ͍ͭ͘͏ͱɺ ֶशίετɾཧίετ ͕૿͑ͯࠔΔ • 1ͭͷαʔϏεʹूͰ͖Δͱخ͍͠
ͦ͜Ͱ CircleCI ΛબͿ • iOS/Android/Rails/AWS ͯ͢ରԠͰ͖Δ
CircleCI ΛબΜͩͷͷ... • iOS/Android/Rails/AWS ͯ͢ରԠͰ͖Δ • ͱɺࢥ͍͕ͬͯͨ...
CircleCI ͷ macOS ϓϥϯ • Linuxͱผྉۚ • ࠷ $39/݄ •
Ϗϧυ੍࣌ؒݶ • ࠷ 500/݄
CircleCI ͷ macOS ϓϥϯ • ຖΨϯΨϯϏϧυ͍ͨ͠ • 500͡ΌΓͳ͍ • ͬ͘͟Γܭࢉ͢Δͱɺ
ɹɹ1Ϗϧυ10 * 10ճ * 20 ɹɹɹɹɹɹɹ => 2000 ཉ͍͠
CircleCI ͷ macOS ϓϥϯ • ্ҐͷϓϥϯͳΒͲ͏͔ • $129/݄ (1800) •
$249/݄ (5000) • ଞͷख͕ͳ͍͔ͳ͊...
None
iOS bitrise ʹͨ͠ • ΫϥΠΞϯτΞϓϦʹ ಛԽ͍ͯ͠ΔͷͰ͔Ώ͍ͱ͜Ζʹख͕ಧ͘ • ຖΨϯΨϯϏϧυͰ͖ΔΑ͏ʹͳͬͨ •
CircleCI ͷΩϡʔ͕ۭ͍ͯྑ͍ • ͏αʔϏε͕૿͑ͨ...
͍ͬͦ bitrise ʹ౷Ұ͢Δʁ • bitrise ΫϥΠΞϯτΞϓϦʹಛԽ • Rails AWS
Λѻ͏ͷͰ͖ͳ͍? Ͱ͖ͨͱͯͦ͠͠͏?
CircleCI & bitrise ମ੍ʹ • CircleCI ʹ౷Ұ͍ͨ͠ؾ࣋ͪ͋Δ • iOSαϙʔτ͕ڧԽ͞ΕΔͱ͍͍ͳ͊
CircleCIͷ׆༻ํ๏
1ਓNͷ՝
ઐ֎ͷྖҬʹ৮ΕΔͷͰ... • ίʔυͷॻ͖ํ͕ͦΕͧΕҧͬͯށ͏ • σϓϩΠɾϦϦʔεํ๏͕Α͔͘Βͳ͍
͖͢͜ͱʹूத͍ͨ͠ • ࣮͢Δػೳʹूத͍ͨ͠ • ༷ɺϩδοΫɺઃܭ ʹूத͍ͨ͠
ࣗಈԽͰ͖Δͱ͜ΖࣗಈԽ • Ϗϧυɺςετͷ֬ೝ => ࣗಈԽ • ίʔυϑΥʔϚοτͷ֬ೝ => ࣗಈԽ •
σϓϩΠɺϦϦʔε࡞ۀ => ࣗಈԽ
Լ४උ
ཧΛ૾ • GitHub Λී௨ʹ͑ྑ͍Έʹ͍ͨ͠ • ಛผͳϧʔϧ࡞Γͨ͘ͳ͍ • ආ͚͍ͨϧʔϧͷྫ • ʮXXϥϕϧ͕͋Δ࣌YY͢Δʯ
• ʮϦϦʔεͨ͘͠ͳ͍࣌ ZZ ͢Δʯ
τϦΨʔ։ൃखॱʹؚΊΔ • ॲཧΛ࣮ߦ͢ΔτϦΨʔҎԼʹݶఆ • GitHubʹϓογϡ • ϓϧϦΫΤετ࡞ • ϓϧϦΫΤετΛϚʔδ •
͜ͷτϦΨʔͰରԠͰ͖ͳ͍͜ͱΒͳ͍ • => ෳࡶͳӡ༻ϧʔϧΛ࡞Βͳ͍
ࣗಈԽ͍͢͠ϒϥϯνߏ • ϒϥϯνߏ୯७ͳํ͕ࣗಈԽ͍͢͠ • ࣍ͷ4छྨʹͳΔΑ͏ϧʔϧΛม͑ͨ • feature • develop •
staging • master
۩ମྫ
feature ͷ Workflow Lint Unit Test
reviewdog ͰࣗಈϨϏϡʔ
featureͷUTܰΊʹ
UTฒྻͰ࣮ߦͰ͖ΔΑ͏ʹ
ΧόϨοδ݁Ռ͕ ׂ͞Ε͍ͯΔͷͰϚʔδ͢Δ
develop ͷ Workflow Unit Test Deploy ϓϧϦΫ࡞
Deploy ։ൃڥʹσϓϩΠ ex) eb deploy
ϓϧϦΫΤετࣗಈ࡞ɾߋ৽
ϓϧϦΫͷλΠτϧ͕ॏཁ ϓϧϦΫΤετͷ λΠτϧ͕ॻ͔Ε͍ͯΔ
ϓϧϦΫͷλΠτϧ͕ॏཁ • ϓϧϦΫͷλΠτϧ == ϦϦʔεͷઆ໌จ • git log ͷ Merge
ίϛοτ͔ΒϓϧϦΫΤετΛಛ ఆ͠ɺͦͷλΠτϧΛऔಘ͍ͯͬͯ͠Δ • Merge ίϛοτ͕ඞཁͳͷͰ git rebase ࣌ҙ • git rebase --preserve-merges ͠ͳ͍ͱ Merge ί ϛοτ͕ফ͑ͯ͠·͏
staging / master develop ͱ΄΅ಉ͡
࡞ͬͨΈͷҰཡ • GitHubʹϓογϡ ɹɹ => Ϗϧυɺςετ • ϓϧϦΫΤετΛ࡞ ɹɹ =>
ίʔυϨϏϡʔ • ϓϧϦΫΤετΛϚʔδ ɹɹ => σϓϩΠɺϓϧϦΫ࡞ɾߋ৽
TODO • Android ͷ PlayετΞ σϓϩΠ • GitHub ͷ Tag
/ Release ͷࣗಈ࡞
(͓·͚) NightlyϏϧυ • CircleCI cronه๏Ͱɺ ࢦఆͨ͠λΠϛϯάͰࣗಈϏϧυͰ͖Δ • ศར
༻ྫ ҰҰճ update gems
·ͱΊ • CircleCI iOS/Android/Rails ͯ͢ΛΧόʔ Ͱ͖Δ ※ୠ͠ iOS ੍ݶ͋Γ
• GitHub Ͱී௨ʹ։ൃ͢Δ͚ͩͰྑ͍ΈΛ ࡞ͬͨ