Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Orbs開発の流れ ~はじめの一歩から、組織的にメンテしていくための環境構築まで / Fl...
Search
株式会社ヌーラボ
PRO
May 28, 2019
Technology
810
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Orbs開発の流れ ~はじめの一歩から、組織的にメンテしていくための環境構築まで / Flow of Orbs Development
CircleCI ユーザーコミュニティミートアップ #4
https://circleci.connpass.com/event/125622/
株式会社ヌーラボ
PRO
May 28, 2019
More Decks by 株式会社ヌーラボ
See All by 株式会社ヌーラボ
配布資料_ヌーラボの情シスがおすすめする_問い合わせ対応を削減するBacklog活用術.pdf
nulabinc
PRO
0
90
Bits Agent Builder の⼊⾨と活⽤事例
nulabinc
PRO
0
2.6k
Getting Started with Bits Agent Builder: Real-World Use Cases
nulabinc
PRO
0
79
The_Evolution_of_Bits_AI_SRE.pdf
nulabinc
PRO
0
410
進化するBits AI SREと私と組織
nulabinc
PRO
4
1.2k
実践 Datadog MCP Server
nulabinc
PRO
4
970
全社横断PjM⽀援チーム “PEaS”の取り組みと プロジェクトマネジメント でのAI活⽤について
nulabinc
PRO
0
240
Datadog の RBAC のすべて
nulabinc
PRO
4
960
Datadog Live Tokyo 2025登壇資料
nulabinc
PRO
0
230
Other Decks in Technology
See All in Technology
なぜ「決定性」が 決定的に重要なのか? Durable Execution 基盤の数理的理解 #serverlessjp / ServerlessDays Tokyo 2026
ytaka23
3
930
10Xに技術的負債をもたらした「2つの境界の歪み」その構造と解消への営み
10xinc
0
2.1k
積み重なった技術負債への挑戦 〜初手としての全社ゴト化〜
techtekt
PRO
0
1.4k
2026_devsumi_ozono.pdf
o3
3
530
絵ではじめるKubernetesセキュリティ
aoi1
4
690
Von-Neumann Machines, Dreams & The Futures of IT
ufried
0
110
GoのInterface内部構造から学ぶ!最高パフォーマンスを出すコード設計
yappli_developers
0
200
幾何アルゴリズムで なめらかなピン操作を / iOSDC Japan 2026 / smoothpin
kazumanagano
0
360
ユーザー価値を届け続けるためにウォンテッドリーが大切にしている文化
kotaminato
0
180
山手線を徒歩で一周してわかった、 位置情報アプリは「足」が最強のデバッガー
hinakko
0
170
AI 時代のスタートアップエコシステ厶から考究する技術的負債との向き合い方
m3m0r7
PRO
3
2.3k
AIで社員の自主発信に広報目線を組み込む
_mossann_t
0
130
Featured
See All Featured
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
430
Everyday Curiosity
cassininazir
0
320
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
From π to Pie charts
rasagy
1
370
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
320
Designing for Timeless Needs
cassininazir
1
480
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
550
ラッコキーワード サービス紹介資料
rakko
1
4.9M
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Building Adaptive Systems
keathley
44
3.2k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
400
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Λ৮͍ͬͯ͜͏