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
140
【資料】30分でわかる!“とりあえず課題を作った”から抜け出すBacklog活用術
nulabinc
PRO
0
140
【展示会ご参加者様向け】Backlog概要編-配布資料
nulabinc
PRO
0
52
Why Platform Engineering? - マルチプロダクト・少人数 SRE の壁を越える挑戦 -
nulabinc
PRO
5
780
Datadog のトライアルを成功に導く技術 / Techniques for a successful Datadog trial
nulabinc
PRO
0
450
Other Decks in Technology
See All in Technology
「全員プロダクトマネージャー」を実現する、Cursorによる仕様検討の自動運転
applism118
19
9.2k
DevIO2025_継続的なサービス開発のための技術的意思決定のポイント / how-to-tech-decision-makaing-devio2025
nologyance
1
370
会社紹介資料 / Sansan Company Profile
sansan33
PRO
6
380k
現場で効くClaude Code ─ 最新動向と企業導入
takaakikakei
1
220
JTCにおける内製×スクラム開発への挑戦〜内製化率95%達成の舞台裏/JTC's challenge of in-house development with Scrum
aeonpeople
0
200
EncryptedSharedPreferences が deprecated になっちゃった!どうしよう! / Oh no! EncryptedSharedPreferences has been deprecated! What should I do?
yanzm
0
210
Obsidian応用活用術
onikun94
1
470
Aurora DSQLはサーバーレスアーキテクチャの常識を変えるのか
iwatatomoya
1
780
Terraformで構築する セルフサービス型データプラットフォーム / terraform-self-service-data-platform
pei0804
1
160
Platform開発が先行する Platform Engineeringの違和感
kintotechdev
4
540
「どこから読む?」コードとカルチャーに最速で馴染むための実践ガイド
zozotech
PRO
0
290
ハードウェアとソフトウェアをつなぐ全てを内製している企業の E2E テストの作り方 / How to create E2E tests for a company that builds everything connecting hardware and software in-house
bitkey
PRO
1
120
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
13k
Automating Front-end Workflow
addyosmani
1370
200k
GraphQLの誤解/rethinking-graphql
sonatard
72
11k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.9k
Navigating Team Friction
lara
189
15k
Making Projects Easy
brettharned
117
6.4k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
188
55k
Writing Fast Ruby
sferik
628
62k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Scaling GitHub
holman
463
140k
RailsConf 2023
tenderlove
30
1.2k
GitHub's CSS Performance
jonrohan
1032
460k
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Λ৮͍ͬͯ͜͏