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
CI/CDツール比較してみた
Search
Kai Shoya
July 12, 2019
Programming
2.2k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CI/CDツール比較してみた
大手Gitホスティングサービス3社でよく使われているCI/CDツール、Bitbucket Pipelines, GitLab CI/CD, CircleCIを比較してみました。
Kai Shoya
July 12, 2019
Other Decks in Programming
See All in Programming
How I Won Prize Money at a Hackathon Using Codex and Symphony Alpha
yasei_no_otoko
0
120
夏だ!祭りだ!祭りとはドメインモデリングでは?
ryugen04
0
380
AWS Transform Customによる Spring Boot 2.xから4.xへのVerUp
satoshi256kbyte
2
100
楽しそうなつよつよエンジニアと目が死んでる僕/A brilliant engineer having a blast, and dead-eyed me.
3l4l5
2
240
引き算の組織 ― アウトカムとAIに全振りするために辞めたこと ― / Organization by Subtraction
hirokiyamamoto14
PRO
0
300
AIの中の人になってみる
htkym
0
120
「人を評価する AI」の設計と実装
ryoyanara
0
240
不幸な GC
chencmd
0
730
為什麼你並不需要ViewModel / No, you don't need a ViewModel
lovee
1
510
Pythonの実行はどこまで賢くなったのか? CPythonとPyPyから見る最適化のしくみ
curekoshimizu
3
1.9k
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
230
片田舎のおっさん、 Swift Buildのダイアモンド問題解決の不具合修正PRを出すが、解決方法がキャッシュをしないようにすることであり、ビルド時間が伸びると言われてマージされないので高速化もする/swiftbuild
yimajo
0
280
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
55
12k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
790
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
380
Visualization
eitanlees
152
17k
How STYLIGHT went responsive
nonsquared
100
6.2k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
810
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
What's in a price? How to price your products and services
michaelherold
247
13k
Ethics towards AI in product and experience design
skipperchong
2
350
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
A Soul's Torment
seathinner
6
3.5k
Transcript
CI/CDπʔϧൺֱͯ͠Έͨ
ࣗݾհ גࣜձࣾϥϯόʔϛϧ ߕ൹ᠳɹ@shonari123 ܦྺ • [ઐֶߍ]ϠΫβͷΑ͏ͳԸࢣʹγΰ͔ΕΔ • [ब৬]”ྑ͍”اۀʹब৬͢Δ͕ϲ݄ͰࣙΊͯχʔτ • [࠶ब৬]ࠓͷձࣾʹब৬
࠷ۙ͏ٕज़ • Java, PHP, MySQL, Vue.js, Firebase
CI/CDͬͯͳʹʁ
CI/CDͱ ʮCIʯͱʮContinuous IntegrationʢܧଓతΠϯςάϨʔγϣϯʣʯͷུͰɺιϑ τΣΞ։ൃʹ͓͚ΔϏϧυςετΛࣗಈԽ͠ɺܧଓతʹߦ͏Ξϓϩʔνͷ͜ͱ Ͱ͢ɻ ʮCDʯͱʮContinuous DeliveryʢܧଓతσϦόϦʔʣʯͷུͰɺCIʹΑͬͯςε τ͞ΕͨίʔυͷϚʔδɺຊ൪ڥ͚ͷϏϧυͷ࡞Λࣗಈతʹߦ͍ɺຊ൪ ڥʹσϓϩΠ͕Մೳͳঢ়ଶΛ͑Δϓϩηεͷ͜ͱͰ͢ɻ ·ͨʮCDʯʮContinuous
DeploymentʢܧଓతσϓϩΠʣʯͷུͱͯ͠ΘΕΔ ͜ͱ͋Γ·͢ɻܧଓతσϓϩΠܧଓతσϦόϦʔͱΑ͘ࣅͨ֓೦Ͱ͕͢ɺܧଓ తσϦόϦʔ͕σϓϩΠՄೳͳঢ়ଶΛ४උ͢Δ͚ͩͳͷʹର͠ɺܧଓతσϓϩΠ ࣮ࡍʹຊ൪ڥͷσϓϩΠ·ͰΛߦ͏͕ҟͳΓ·͢ɻ ͜ͷΑ͏ͳϏϧυɺςετɺσϓϩΠΛࣗಈԽ͠ɺܧଓతʹߦ͏ख๏ͷ͜ͱΛɺ͋ ΘͤͯʮCI/CDʯͱݺͼ·͢ɻ χϑΫϥʰʮCI/CDʯͱʱ(https://pfs.nifcloud.com/navi/words/ci_cd.htm : 2019/07/04)
CI/CDͱ CI: ςετϏϧυΛࣗಈͰߦ͏͜ͱ CD: CI͕OKͩͬͨΒࣗಈͰσϓϩΠ ͢Δ͜ͱ
GitϗεςΟϯάαʔϏε Push Pull Request CI/CDπʔϧ Push, Pull RequestΛݕ ςετɾϏϧυΛ࣮ߦ ςετɾϏϧυ͕
௨ͬͨΒσϓϩΠ
CI/CDͷྲྀΕ Init Test Build Deploy checkoutͨ͠Γ yarn installͨ͠Γ ςετͱϏϧυΛฒྻʹ࣮ߦ masterϒϥϯνͷ࣌ͷΈ
શ෦௨ͬͨΒσϓϩΠ
ൺֱ͢ΔCI/CDπʔϧ •Bitbucket Pipelines •GitLab CI/CD •Circle CI
Bitbucket Pipelines
feature/cicd master develop merge checkout pull request pull request commit
merge ͚ͩ͜͜ νΣοΫ͢Δ CI/CD͢ΔՕॴ
ઃఆ ʮEnable PipelinesʯΛOnʹ͢Δ ϓϩδΣΫτͷϧʔτσΟϨΫτϦʹ ʮbitbucket-pipelines.ymlʯΛ࡞
yml
yml ڥม Docker Image UnitςετͱBuildΛ ฒྻʹ࣮ߦ node_modules/Λ શମͰڞ༗ લճ࣮ߦͨ࣌͠ͷ node_modules/Λίϐʔ
શͯͷpull requestͰ initͱciΛ࣮ߦ cachesΛར༻͢ΔͨΊ ϩʔΧϧʹอଘ
ߏจνΣοΫ
ޭ
ࣦഊ
ίϛοτҰཡ
GitLab CI/CD
feature/cicd master develop merge checkout pull request pull request commit
merge ͚ͩ͜͜ νΣοΫ͢Δ CI/CD͢ΔՕॴ
ઃఆ ϓϩδΣΫτͷϧʔτσΟϨΫτϦʹ ʮ.gitlab-ci.ymlʯΛ࡞
yml
yml Job Jobͷ࣮ߦॱ stage͕ಉ໊͡લ ͩͬͨΒฒྻʹॲཧ masterͱϓϧϦΫ࣌ͷΈ ࣮ߦ Docker Image ڥม
node_modules/ͱdist/Λ શମͰڞ༗ લճ࣮ߦͨ࣌͠ͷ node_modules/Λίϐʔ
ߏจνΣοΫ
ޭ
ࣦഊ
ίϛοτҰཡ
Circle CI
feature/cicd master develop merge checkout pull request pull request commit
merge ͚ͩ͜͜ νΣοΫ͢Δ CI/CD͢ΔՕॴ
feature/cicd master develop merge checkout pull request pull request commit
merge ͚ͩ͜͜ νΣοΫ͢Δ CI/CD͢ΔՕॴ
ઃఆ Circle CIʹαΠϯΠϯ(αΠϯΞοϓ)͠Github/ BitbucketΞΧϯτͱ࿈ܞ͢Δ ϓϩδΣΫτʹʮ.circleci/config.ymlʯΛ࡞
None
yml
yml Docker Image ڥม node_modules/Λอଘ લճอଘͨ͠ node_modules/ಡΈࠐΈ ΧϨϯτσΟϨΫτϦΛڞ༗ ڞ༗͞ΕͨσΟϨΫτϦΛΞλον dist/Λڞ༗
master͚ͩ Ͱ࣮ߦ ྃΛͭjobΛࢦఆ ಉ͡jobΛࢦఆ͢Δͱ ฒྻʹͳΔ
ߏจνΣοΫ
ޭ
ࣦഊ
ίϛοτҰཡ
Bitbucket Pipelines GitLab CI/CD Circle CI υΩϡϝϯτ ຊޠ͋Γ ͍͠ ӳޠͷΈ
༏͍͠ ຊޠ͋Γ ͍͠ ίϯςφ ແྉ ແ੍ݶʁ ແ੍ݶʁ 1 OSSͷ߹: 4 Ϗϧυ࣌ؒ/݄ ແྉ 50/݄ 2,000/݄ 1,000/݄ Ωϟογϡ ͋Γ ͋Γ ༗ྉ Ϗϧυʹ͔͔ͬͨ࣌ؒ 2 530ඵ 3 ߏจνΣοΫ Validator Θ͔ΓͣΒ͍ CI Lint Θ͔Γ͍͢ circleciίϚϯυ Θ͔Γ͍͢ ൺֱ
·ͱΊ • Bitbucket Pipelines • !Ϗϧυ͕Ұ൪ૣ͍ • "Ϗϧυ࣌ؒ/݄͕͍ʢελϯμʔυϓϥϯ: 500/݄ʣ •
Gitlab CI • !υΩϡϝϯτ͕Θ͔Γ͘͢ɺϏϧυ࣌ؒ/݄͕Ұ൪ଟ͍ • "αʔόʔͷࠞΈ۩߹͕͔ͳΓӨڹ͢Δʢૣ͍࣌3ऑʣ • Circle CI • !ߏจνΣοΫҰ൪Θ͔Γ͍͢ • "filtersʹPull RequestΛࢦఆͰ͖ͳ͍
ymlΛGithubʹͯެ։தʂ https://github.com/KaiShoya/CICD-Examples