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
740
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 株式会社ヌーラボ
【資料】30分でわかる!“とりあえず課題を作った”から抜け出すBacklog活用術
nulabinc
PRO
0
6
【展示会ご参加者様向け】Backlog概要編-配布資料
nulabinc
PRO
0
25
Why Platform Engineering? - マルチプロダクト・少人数 SRE の壁を越える挑戦 -
nulabinc
PRO
5
640
Datadog のトライアルを成功に導く技術 / Techniques for a successful Datadog trial
nulabinc
PRO
0
300
僕たちは何を守っているのか?ビジネスを守る、ヌーラボのセキュリティ実践
nulabinc
PRO
1
63
Snowflake九州ユーザー会
nulabinc
PRO
0
58
ヌーラボ‧ウェブサイト課の ⼀年間の取り組みをふり返る
nulabinc
PRO
1
1.1k
今からでも入れる re:Inventがあるんですか!?
nulabinc
PRO
0
430
ライティングチームだからこそできた、「どことでも繋がれるチーム」づくりの結果 / Technical Writing Meetup vol.38
nulabinc
PRO
0
100
Other Decks in Technology
See All in Technology
Tenstorrent 開発者プログラム
tenstorrent_japan
0
290
Roo CodeとClaude Code比較してみた
pharma_x_tech
1
250
kotlin-lsp を Emacs で使えるようにしてみた / use kotlin-lsp in Emacs
nabeo
0
120
Long journey of Continuous Delivery at Mercari
hisaharu
1
200
Data Hubグループ 紹介資料
sansan33
PRO
0
1.8k
Tensix Core アーキテクチャ解説
tenstorrent_japan
0
340
脅威をモデリングしてMCPのセキュリティ対策を考えよう
flatt_security
4
1.2k
Go Connectへの想い
chiroruxx
0
160
堅牢な認証基盤の実現 TypeScriptで代数的データ型を活用する
kakehashi
PRO
1
190
JavaのMCPサーバーで体験するAIエージェントの世界
tatsuya1bm
1
220
Eight Engineering Unit 紹介資料
sansan33
PRO
0
3.4k
型システムを知りたい人のための型検査器作成入門
mame
14
3.4k
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
524
40k
Site-Speed That Sticks
csswizardry
10
620
Building an army of robots
kneath
306
45k
Designing for humans not robots
tammielis
253
25k
Designing Experiences People Love
moore
142
24k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
14
1.5k
Embracing the Ebb and Flow
colly
85
4.7k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Being A Developer After 40
akosma
90
590k
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Λ৮͍ͬͯ͜͏