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
Nx CloudでCIを爆速にした話
Search
puku0x
May 19, 2023
Technology
0
700
Nx CloudでCIを爆速にした話
TechBrew 〜 一杯のお酒で繋がるエンジニアたち〜@福岡
puku0x
May 19, 2023
Tweet
Share
More Decks by puku0x
See All by puku0x
ファインディにおけるフロントエンド技術選定の歴史
puku0x
1
140
ファインディでのGitHub Actions活用事例
puku0x
9
2.6k
Findyの開発生産性向上への取り組み ~Findyフロントエンドの場合~
puku0x
0
400
Findyの開発生産性を上げるためにやったこと
puku0x
1
530
Angularコーディングスタイルガイドはいいぞ
puku0x
1
230
Findyのフロントエンド設計刷新を通して得られた技術的負債との向き合い方
puku0x
1
1.7k
最高の開発体験を目指して 〜Findyのフロントエンド設計刷新〜
puku0x
0
760
VSCode GraphQL + GraphQL Code Generator による快適なフロントエンド開発
puku0x
0
2.4k
Nxはいいぞ
puku0x
0
710
Other Decks in Technology
See All in Technology
Incident Response Practices: Waroom's Features and Future Challenges
rrreeeyyy
0
160
FlutterアプリにおけるSLI/SLOを用いたユーザー体験の可視化と計測基盤構築
ostk0069
0
100
Introduction to Works of ML Engineer in LY Corporation
lycorp_recruit_jp
0
140
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.7k
CysharpのOSS群から見るModern C#の現在地
neuecc
2
3.5k
アジャイルでの品質の進化 Agile in Motion vol.1/20241118 Hiroyuki Sato
shift_evolve
0
170
心が動くエンジニアリング ── 私が夢中になる理由
16bitidol
0
100
iOSチームとAndroidチームでブランチ運用が違ったので整理してます
sansantech
PRO
0
150
Flutterによる 効率的なAndroid・iOS・Webアプリケーション開発の事例
recruitengineers
PRO
0
120
SREが投資するAIOps ~ペアーズにおけるLLM for Developerへの取り組み~
takumiogawa
1
430
AGIについてChatGPTに聞いてみた
blueb
0
130
AIチャットボット開発への生成AI活用
ryomrt
0
170
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
43
13k
Agile that works and the tools we love
rasmusluckow
327
21k
A Tale of Four Properties
chriscoyier
156
23k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Code Reviewing Like a Champion
maltzj
520
39k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
44
2.2k
Producing Creativity
orderedlist
PRO
341
39k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
16
2.1k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Side Projects
sachag
452
42k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
Transcript
Nx CloudでCIを爆速にした話 TechBrew 〜 一杯のお酒で繋がるエンジニアたち〜@福岡 @puku0x Noriyuki Shinpuku
@puku0x 2
@puku0x 3 CIにどれぐらい時間がかかっていますか?
@puku0x 成長のジレンマ 4 機能追加 コード量 増 CI時間 増
@puku0x 5 CIが遅いとどうなる?
@puku0x レビューが遅くなる 6 20分後でいいや
@puku0x 7 ブランチの生存期間が 延びるとどうなる?
@puku0x コンフリクトが増える 8
@puku0x 9 CI高速化がカギ
@puku0x CI高速化のテクニック • キャッシュの活用 ~/.npm や node_modules 等をキャッシュ • 変更検知
影響範囲のコードのみ実行 10 その他: ジョブ並列化、仮想マシンのグレードアップ等
node_modulesのキャッシュ 11 strategy: matrix: node: ['16', '18'] steps: - uses:
actions/cache@v3 id: cache with: path: node_modules key: ${{ runner.os }}-node-${{ matrix.node }}-npm-${{ hashFiles('**/package-lock.json') }
- uses: actions/cache@v3 if: steps.cache.outputs.cache-hit != 'true' with: path: |
~/.npm ~/.cache/Cypress key: ${{ runner.os }}-node-${{ matrix.node }}-npm-${{ hashFiles('**/package-lock.json') } restore-keys: | ${{ runner.os }}-node-${{ matrix.node }}-npm- - name: Install dependencies if: steps.cache.outputs.cache-hit != 'true' run: npm ci 他のディレクトリのキャッシュ 12
@puku0x 13 https://nx.dev/
@puku0x Nx + Nx Cloud • nx affected による変更検知 •
Nx Cloudによるリモートキャッシュ ◦ CI時間平均 約10分 → 約5分 ※最短で1分未満 14
@puku0x 15
@puku0x 16 300時間/月 以上を削減!
@puku0x 17 https://speakerdeck.com/puku0x/findynohurontoendoshe-ji-shua-xin-wotong-sitede-raretaji-shu-de-fu-zhai-tonoxiang-kihe-ifang
@puku0x Nxはいいぞ @puku0x Noriyuki Shinpuku