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
770
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 株式会社ヌーラボ
Streamlitとロール関連の話
nulabinc
PRO
0
74
サクフェス2024_ヌーラボ原_CSと開発
nulabinc
PRO
0
18
チームの力を成果に変える、次世代のマネジメント術 〜中小企業の生産性革命〜
nulabinc
PRO
0
40
チームワークマネジメントとは
nulabinc
PRO
0
17
チームの未来を支えるバックログスイーパーという役割
nulabinc
PRO
0
11
ヌーラボが取り組む RevOpsのこれまでとこれから
nulabinc
PRO
1
230
【資料】30分でわかる!“とりあえず課題を作った”から抜け出すBacklog活用術
nulabinc
PRO
0
200
【展示会ご参加者様向け】Backlog概要編-配布資料
nulabinc
PRO
0
82
Why Platform Engineering? - マルチプロダクト・少人数 SRE の壁を越える挑戦 -
nulabinc
PRO
6
840
Other Decks in Technology
See All in Technology
重厚長大企業で、顧客価値をスケールさせるためのプロダクトづくりとプロダクト開発チームづくりの裏側 / Developers X Summit 2025
mongolyy
0
160
機密情報の漏洩を防げ! Webフロントエンド開発で意識すべき漏洩パターンとその対策
mizdra
PRO
10
3.6k
Rubyist入門: The Way to The Timeless Way of Programming
snoozer05
PRO
7
520
AI エージェントを評価するための温故知新と Spec Driven Evaluation
icoxfog417
PRO
2
290
Progressive Deliveryで支える!スケールする衛星コンステレーションの地上システム運用 / Ground Station Operation for Scalable Satellite Constellation by Progressive Delivery
iselegant
1
200
大規模モノレポの秩序管理 失速しない多言語化フロントエンドの運用 / JSConf JP 2025
shoota
0
250
2ヶ月で新規事業のシステムを0から立ち上げるスタートアップの舞台裏
shmokmt
0
230
Redux → Recoil → Zustand → useSyncExternalStore: 状態管理の10年とReact本来の姿
zozotech
PRO
18
8.7k
LINEヤフー バックエンド組織・体制の紹介
lycorptech_jp
PRO
0
810
今、MySQLのバックアップを作り直すとしたら何がどう良いのかを考える旅
yoku0825
2
460
LINEギフト・LINEコマース領域の開発
lycorptech_jp
PRO
0
320
[mercari GEARS 2025] Building Foundation for Mercari’s Global Expansion
mercari
PRO
1
140
Featured
See All Featured
Making Projects Easy
brettharned
120
6.5k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Faster Mobile Websites
deanohume
310
31k
Typedesign – Prime Four
hannesfritz
42
2.9k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
The Invisible Side of Design
smashingmag
302
51k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.7k
Documentation Writing (for coders)
carmenintech
76
5.1k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Visualization
eitanlees
150
16k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
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Λ৮͍ͬͯ͜͏