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
このCircle CIがすごい 中央線Meetup #1 /circle ci sugoi
Search
dmnlk
August 03, 2018
Technology
0
470
このCircle CIがすごい 中央線Meetup #1 /circle ci sugoi
中央線Meetup #1 で使う資料です
dmnlk
August 03, 2018
Tweet
Share
More Decks by dmnlk
See All by dmnlk
PHPバージョンアップから始めるOSSコントリビュート / how2oss-contribute
dmnlk
1
1.3k
New Relicを全社導入するときに必要なこと / 20221213_NRUG_newrelic
dmnlk
0
130
NewRelicプラットフォームを使ったオブザーバビリティ入門 / phpcon2020jp-observability
dmnlk
0
1.3k
プロダクトファーストに価値を創造するエンジニアとしての生き方 / Product first Engineering
dmnlk
6
4k
Other Decks in Technology
See All in Technology
SEQUENCE object comparison - db tech showcase 2025 LT2
nori_shinoda
0
140
2025 AWS Jr. Championが振り返るAWS Summit
kazukiadachi
0
110
IPA&AWSダブル全冠が明かす、人生を変えた勉強法のすべて
iwamot
PRO
2
130
United airlines®️ USA Contact Numbers: Complete 2025 Support Guide
unitedflyhelp
0
310
Geminiとv0による高速プロトタイピング
shinya337
1
270
KiCadでPad on Viaの基板作ってみた
iotengineer22
0
300
CRE Camp #1 エンジニアリングを民主化するCREチームでありたい話
mntsq
1
120
FOSS4G 2025 KANSAI QGISで点群データをいろいろしてみた
kou_kita
0
400
開発生産性を組織全体の「生産性」へ! 部門間連携の壁を越える実践的ステップ
sudo5in5k
2
7.1k
LangSmith×Webhook連携で実現するプロンプトドリブンCI/CD
sergicalsix
1
230
タイミーのデータモデリング事例と今後のチャレンジ
ttccddtoki
6
2.4k
Core Audio tapを使ったリアルタイム音声処理のお話
yuta0306
0
190
Featured
See All Featured
Designing for humans not robots
tammielis
253
25k
Documentation Writing (for coders)
carmenintech
72
4.9k
What's in a price? How to price your products and services
michaelherold
246
12k
How to Ace a Technical Interview
jacobian
278
23k
It's Worth the Effort
3n
185
28k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
50
5.5k
We Have a Design System, Now What?
morganepeng
53
7.7k
Writing Fast Ruby
sferik
628
62k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
The Cost Of JavaScript in 2023
addyosmani
51
8.5k
Navigating Team Friction
lara
187
15k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Transcript
͜ͷCircleCI͕͍͢͝ தԝઢMeetup #1 @dmnlk
୭ʁ • dmnlk • ौ୩ͷWebاۀͷόοΫΤϯυΤϯδχΞ • લ৬Java,ݱ৬PHPϝΠϯ,ͪΐͬͱGolang • Πϯϑϥ৮Γ·͢
தԝઢͱΘͨ͠ • 201711݄͔ΒԮࡏॅ • ͜ͷձ͔Βెา5minݍ • ԮબΜͩͷ͍͍ҿΈ͕ଟͦ͏͔ͩΒ… • ߴԁࣉɾத͋ͨΓͰͨ·ʹҿΜͰ͍·͢
ຊʹೖΔલʹ
None
CakeFest2019 ຊͰ։࠵ܾఆ
CakeFestͱ • PHPͷWebApplicationFrameworkͰ͋ΔCakePHPʹϑΥʔΧεͨ͠ ΧϯϑΝϨϯε • 2018ΞϝϦΧ։࠵༧ఆ͚ͩͬͨͲॾࣄͰ։࠵ͤͣ • 2019ͷ։࠵ީิʹຊ্͕͕͍ͬͯͨ • ථͰຊʹ։࠵ܾఆ
• ίΞνʔϜຊʹདྷͯ͘ΕΔͣ • Laravelʹෛ͚ΔͳؤுΕCakePHPʢฐࣾͰ࠾༻͍ͯ͠·͢ʣ
ຊ
None
CircleCIͱ • SaaSܕͷCIαʔϏε • Continuous IntegrationΛߦ͏ • push͞ΕΔʹTestΛ࣮ߦͱ͔ • ωΠςΟϒΞϓϦͷϏϧυͱ͔
• ྨࣅSaaSʹTravisCI,ShippableͳͲ
CircleCIͷಛ • 1ܥͱ2ܥ͕͋Δ͕ɺ1ܥ͋ͱ1ϲ݄Ͱࢮ͵ͷͰׂѪ • .circleci/config.ymlʹYAMLͰjobͷఆٛΛॻ͘ • Docker imageΛར༻ͯ͠jobΛ࣮ߦ͢Δ • ແྉ͋Γprivate
repoͰར༻Ͱ͖ΔͷͰ͓ࢼ͍͢͠ • Dockerͷ͕ࣝଟগ͍ΔͷͰ࠷ॳͱ͖ͬͭͮΒ͍͔ • macOSίϯςφ͋ΔͷͰiOSΞϓϦͷϏϧυʹ͑·͢ʢແྉͳ ͠
Jenkinsʹ͍ͭͯ • લ৬ͰΦϯϓϨαʔόʔʹJenkins • Jenkinsࣗମͷϝϯςφϯε͕ਏ͍ • ؾͮ͘ͱϝϞϦ৯͍͗ͯ͢ࢮΜͰΔͱ͔ • CIͷઃఆ͕GUIͰॻ͍͍ͯ͘ɻίʔυཧग़དྷͳ͍ •
Jenkins2ܥͩͱύΠϓϥΠϯΛίʔυఆٛͰ͖Δ • ϓϥάΠϯ๛ͳͷར
config.ymlͷαϯϓϧ version: 2 jobs: build: docker: - image: circleci/<language>:<version TAG>
steps: - checkout - run: <command> test: docker: - image: circleci/<language>:<version TAG> steps: - checkout - run: <command> workflows: version: 2 build_and_test: jobs: - build - test Ref https://circleci.com/docs/2.0/sample-config/
GitHubͰͷ࿈ܞόονϦ
CircleCIͷTips
ͦͷ1: CircleCI͕༻ҙͨ͠imageΛ͏ • DBͳͲDocker imageΛར༻͢Δඞཁ͕͋Δ • ී௨mysql:5.7ͷΑ͏ͳΦϑΟγϟϧimageΛ͍͕ͪ • ࣮CircleCI͕༻ҙͨ͠࠷దԽimage͕͋Δ •
circleci/mysqlͱࢦఆ͢Δ͚ͩͰ͘ͳΔʢ͍͢͝ • ଞʹ͋ΔͷͰࢼͯ͠ΈΔͱྑ͍(https://hub.docker.com/u/ circleci/)
ͦͷ2: jobؒͰϑΝΠϧΛड͚͢ • workflowΛར༻͢ΔͱෳͷjobΛฒྻʹ࣮ߦͰ͖ͨΓ͢Δ • ͔͠͠ιʔεͷcheckoutґଘϞδϡʔϧͷinstallͳͲͦ ΕͧΕΔඞཁ͕͋Δ • persist_to_workspaceͱattach_workspaceΛ͏͜ͱͰՌ ͷड͚͕͠Ͱ͖Δ
• ґଘؔͷղܾjobΛ࣮ߦͯ͠ɺϑϩϯτΤϯυͷtest jobͱ όοΫΤϯυͷtest jobʹड͚ͯ͠ฒྻtestͨ͠Γͱ͔
ͦͷ3: Schedule-WorkflowΛ͏ • ͜͜·ͰͷbuildܖػGitHubͷpush or खಈ • Schedule-Workflowͱ͍͏ػೳ͕͋Δ • ॴҦcron(࣮ࡍcronܗࣜͰॻ͘ʣ
• ࢝ۀલʹ࣌ؒͷ͔͔Δ੩తղੳjobΛಈ͔͢ • ఆظతʹϚελσʔλΛߋ৽͢Δ etc…
CircleCI͍͢͝ʂʂʂ ͕ʂ ͍͔͢͝Βͱ͍ͬͯ ͳΜͰΖ͏ͱ͢Δͱ yak shavingʹͳΔ͔Β ఔʑʹ!!!