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
Orbs開発の流れ ~はじめの一歩から、組織的にメンテしていくための環境構築まで / Fl...
Search
株式会社ヌーラボ
PRO
May 28, 2019
Technology
3
760
Orbs開発の流れ ~はじめの一歩から、組織的にメンテしていくための環境構築まで / Flow of Orbs Development
CircleCI ユーザーコミュニティミートアップ #4
https://circleci.connpass.com/event/125622/
株式会社ヌーラボ
PRO
May 28, 2019
Tweet
Share
More Decks by 株式会社ヌーラボ
See All by 株式会社ヌーラボ
サクフェス2024_ヌーラボ原_CSと開発
nulabinc
PRO
0
5
チームの力を成果に変える、次世代のマネジメント術 〜中小企業の生産性革命〜
nulabinc
PRO
0
26
チームワークマネジメントとは
nulabinc
PRO
0
8
チームの未来を支えるバックログスイーパーという役割
nulabinc
PRO
0
6
ヌーラボが取り組む RevOpsのこれまでとこれから
nulabinc
PRO
1
160
【資料】30分でわかる!“とりあえず課題を作った”から抜け出すBacklog活用術
nulabinc
PRO
0
140
【展示会ご参加者様向け】Backlog概要編-配布資料
nulabinc
PRO
0
53
Why Platform Engineering? - マルチプロダクト・少人数 SRE の壁を越える挑戦 -
nulabinc
PRO
5
780
Datadog のトライアルを成功に導く技術 / Techniques for a successful Datadog trial
nulabinc
PRO
0
460
Other Decks in Technology
See All in Technology
大「個人開発サービス」時代に僕たちはどう生きるか
sotarok
20
10k
自作JSエンジンに推しプロポーザルを実装したい!
sajikix
1
190
テストを軸にした生き残り術
kworkdev
PRO
0
210
AIのグローバルトレンド2025 #scrummikawa / global ai trend
kyonmm
PRO
1
310
エンジニアリングマネージャーの成長の道筋とキャリア / Developers Summit 2025 KANSAI
daiksy
3
890
「何となくテストする」を卒業するためにプロダクトが動く仕組みを理解しよう
kawabeaver
0
430
Firestore → Spanner 移行 を成功させた段階的移行プロセス
athug
1
500
Modern Linux
oracle4engineer
PRO
0
160
スマートファクトリーの第一歩 〜AWSマネージドサービスで 実現する予知保全と生成AI活用まで
ganota
2
310
20250910_障害注入から効率的復旧へ_カオスエンジニアリング_生成AIで考えるAWS障害対応.pdf
sh_fk2
3
270
S3アクセス制御の設計ポイント
tommy0124
3
200
20250912_RPALT_データを集める→とっ散らかる問題_Obsidian紹介
ratsbane666
0
100
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Rails Girls Zürich Keynote
gr2m
95
14k
Six Lessons from altMBA
skipperchong
28
4k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
Unsuck your backbone
ammeep
671
58k
A better future with KSS
kneath
239
17k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
Music & Morning Musume
bryan
46
6.8k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
Bash Introduction
62gerente
615
210k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Transcript
$JSDMF$*ϢʔβʔίϛϡχςΟϛʔτΞοϓ /VMBC*OD5PNPOBSJ/",".63" !JLJLLP 0SCT։ൃͷྲྀΕd͡ΊͷҰา͔Β ৫తʹϝϯς͍ͯͨ͘͠Ίͷڥߏங·Ͱd
ࣗݾհ w໊લɿதଜ !JLJLLP wॴଐɿψʔϥϘ wਪ͠ϝϯɿͬ͞͠ʔ
None
࡞ͬͨ0SC w5ZQFUBML0SC https://www.typetalk.com/ja/blog/how-to-integrate-circleci-with-typetalk-to-automatically-notify-of-build-results/
࡞͖͔͚ͬͨͬ wʮ$IBUXPSLʹ௨Λߦ͏$JSDMF$*0SC Λ࡞ͬͨʯΛݟͨ w͋ɺ͜Εಉ͡Α͏ʹνϟοτʹ௨͢Δ ͭ࡞Εͦ͏ w(8Ͱ࡞ͬͪΌ͑ ࣮ɿ
ݖݶपΓؚΉϦϦʔε ͷௐɿ
ΞδΣϯμ wεςοϓɿ·͚ͣࣗͩͰಈ࡞֬ೝ wεςοϓɿQVCMJTIͯ͠ɺଞͷਓʹ ͬͯΒ͓͏ wεςοϓɿΈΜͳͰϝϯς͍͚ͯ͠Δ Α͏ʹ
·ͣಈ࡞֬ೝ wΠϯϥΠϯ0SC͕͓खܰ w version: 2.1 orbs: example: commands: my_command: parameters:
my_name: type: string steps: - run: echo "hello <<parameters.my_name>>" jobs: build: docker: - image: circleci/node:4.8.2 steps: - example/my_command: my_name: ikikko ΠϯϥΠϯͰల։ ͍ͯ͠Δ෦
·ͣಈ࡞֬ೝ wखݩͰ࣮ߦ # OrbΛల։ʢ2019/05࣌ɺOrbΛϩʔΧϧͰ࣮ߦͰ͖ͳ͍ͨΊʣ $ circleci config process .circleci/config.yml >
.circleci/processed.config.yml # ల։͞ΕͨϑΝΠϧΛϩʔΧϧͰ࣮ߦ $ circleci local execute -c .circleci/processed.config.yml ͜͜·Ͱɺ$JSDMF$*Λ௨ ৗͲ͓Γར༻͢Δࣝͩ ͚Ͱʢ΄΅ʣରԠՄೳ
ΞδΣϯμ wεςοϓɿ·͚ͣࣗͩͰಈ࡞֬ೝ wεςοϓɿQVCMJTIͯ͠ɺଞͷਓʹ ͬͯΒ͓͏ wεςοϓɿΈΜͳͰϝϯς͍͚ͯ͠Δ Α͏ʹ
QVCMJTIͯ͠ΈΑ͏ wηοτΞοϓ
QVCMJTIͯ͠ΈΑ͏ wηοτΞοϓ # namespaceͷ࡞ $ circleci namespace create <name> <vcs-type>
<org-name> $ circleci namespace create nulab github nulab # orbͷ࡞ $ circleci orb create <namespace>/<orb> $ circleci orb create nulab/typetalk-orb
QVCMJTIͯ͠ΈΑ͏ w1VCMJTI w # खݩͰorbͷಈ࡞֬ೝ͕औΕͨΒɺorb.ymlʹΓग़͓ͯ͘͠ # ։ൃ༻όʔδϣϯͷpublish $ circleci orb
publish <path> <namespace>/<orb>@<version> $ circleci orb publish orb.yml nulab/typetalk-orb@dev:alpha # ຊՔಇ༻όʔδϣϯͷpublish $ circleci orb publish promote <namespace>/<orb>@<version> <segment> $ circleci orb publish promote nulab/typetalk-orb@dev:alpha major 4FN7FSʹͷͬͱ͍ͬͯΔ NBKPSNJOPSQBUDI
ΞδΣϯμ wεςοϓɿ·͚ͣࣗͩͰಈ࡞֬ೝ wεςοϓɿQVCMJTIͯ͠ɺଞͷਓʹ ͬͯΒ͓͏ wεςοϓɿΈΜͳͰϝϯς͍͚ͯ͠ ΔΑ͏ʹ
ΈΜͳͰϝϯςͰ͖ΔΑ͏ʹ wओʹɺେͷྲྀΕΛ͠·͢ wࡉ͔͍ઃఆ༰ɺιʔείʔυͱݟൺ ͳ͕Βฉ͍͍ͯͩ͘͞ w IUUQTHJUIVCDPNOVMBCUZQFUBMLPSC
ΈΜͳͰϝϯςͰ͖ΔΑ͏ʹ wσϑΝΫτͳύοέʔδߏ w src ├── @orb.yml ├── commands │ ├──
notify.yml │ └── status.yml ├── examples │ ├── notify.yml │ └── status.yml ├── executors │ └── ... └── jobs └── ... # 1ϑΝΠϧύοέʔδԽʢޙड़ͷCI/CDϫʔΫϑϩʔதͰࣗಈͰద༻͞ΕΔʣ $ circleci config pack src > orb.yml
ΈΜͳͰϝϯςͰ͖ΔΑ͏ʹ wσϑΝΫτ ͳ$*$%ͷϫʔΫϑϩʔ w ެࣜ0SCͷҎ্͕͜ͷϫʔΫϑϩʔʹԊ͍ͬͯΔ
ΈΜͳͰϝϯςͰ͖ΔΑ͏ʹ wσϑΝΫτ ͳ$*$%ͷϫʔΫϑϩʔ w ެࣜ0SCͷҎ্͕͜ͷϫʔΫϑϩʔʹԊ͍ͬͯΔ
ϫʔΫϑϩʔ
ϫʔΫϑϩʔ
ϫʔΫϑϩʔ
ϫʔΫϑϩʔ
ࢀߟυΩϡϝϯτ w $JSDMF$*0SCT։ൃશΨΠυ൛ʛ UJNBLJOʛOPUF w ༗ྉOPUF͚ͩͲɺ͘͢͝Α͘·ͱ·͍ͬͯΔɻ ίʔυ͏ͷ͕େมͳΒɺ໎Θͣ՝ۚ͠Α͏ w :`trigger-integration-workflow`ͷ`cleanup- tags:
true`ΦϓγϣϯͰɺUBHΛஞ࣍ཧͰ͖Δ w :`test-in-builds`ΛΘͣͱɺDPOpHZNMͰͨ ॻ͖ͯ͠Αͦ͞͏
ࢀߟυΩϡϝϯτ w $SFBUJOHBVUPNBUFECVJME UFTU BOEEFQMPZ XPSLqPXTGPSPSCT QBSU$JSDMF$*#MPH w ͜ͷϫʔΫϑϩʔΛ͡Ίɺ0SC࡞Λิॿ͢Δ 0SC
PSCUPPMTPSC Λ࡞ͬͨਓ͕ॻ͍ͨϒϩά w ӳޠ͕ۤ͡Όͳ͚Εɺͪ͜ΒͰ
ΞδΣϯμ wεςοϓɿ·͚ͣࣗͩͰಈ࡞֬ೝ wεςοϓɿQVCMJTIͯ͠ɺଞͷਓʹ ͬͯΒ͓͏ wεςοϓɿΈΜͳͰϝϯς͍͚ͯ͠Δ Α͏ʹ
ॴײ wɿࣗҎ֎ͷਓ৮ΔՄೳੑ͕͋Δϓ ϩδΣΫτʹɺಛʹ༗ޮ w ݸਓϓϩδΣΫτͰͳ͍ɺձࣾ৫ͷ0SCͳͲ w ܰඍͳमਖ਼ʹ͍ͭͯɺ(JU)VC্Ͱ13ग़ͯ͠ Ϛʔδ͢Δ͚ͩͰेରԠՄೳ w ʢຯʹϝϞϦ͏ʣϦϦʔε൪߸ͷ༩
Φʔτ࠾൪
ॴײ wɿࣗҎ֎ͷਓ৮ΔՄೳੑ͕͋Δϓ ϩδΣΫτʹɺಛʹ༗ޮ w ௨ৗͳΒɺ(JU)VCͷPXOFSͰͳ͍ͱຊՔಇ༻όʔ δϣϯQVCMJTIͰ͖ͳ͍͕ w PXOFSݖݶͷUPLFOΛ$JSDMF$*্ʹຒΊࠐΜͰ͓͚ ΔͷͰ w13ΛϚʔδͰ͖Δਓ୭ͰQVCMJTIՄೳʹ
ॴײ wར༻ऀͷʢ$JSDMF$*ॳΊͯͷਓʣ
ॴײ wɿϫʔΫϑϩʔ͕ͪΐͬͱෳࡶʜ w ϫʔΫϑϩʔ͕ͭʹ͔ΕͯͯɺͦΕΛͭͳ͙ͷ ʹ(JUͷUBHΛ͍ͬͯͯɺײతʹ͔ΓͮΒ͍ w ಉ͡Α͏ͳهड़͕ෳ͋ͬͯɺ
ॴײ wɿ(JUͷϦϦʔεͱ0SCͷόʔδϣϯͷ ඥ͚͕͔ͮΓͮΒ͍ w ҰԠɺ(JUͷλά͚͞ΕΔͷͰɺϦϦʔεϖʔ δ͔Β͏͜ͱͰ͖Δ
0SCࣗͷ$*$%Λ͑ͯ ΈΜͳͰ0SCΛ৮͍ͬͯ͜͏