TechBrew 〜 一杯のお酒で繋がるエンジニアたち〜@福岡
Nx CloudでCIを爆速にした話TechBrew 〜 一杯のお酒で繋がるエンジニアたち〜@福岡@puku0xNoriyuki Shinpuku
View Slide
@puku0x 2
@puku0x 3CIにどれぐらい時間がかかっていますか?
@puku0x成長のジレンマ4機能追加 コード量 増 CI時間 増
@puku0x 5CIが遅いとどうなる?
@puku0xレビューが遅くなる620分後でいいや
@puku0x 7ブランチの生存期間が延びるとどうなる?
@puku0xコンフリクトが増える8
@puku0x 9CI高速化がカギ
@puku0xCI高速化のテクニック● キャッシュの活用~/.npm や node_modules 等をキャッシュ● 変更検知影響範囲のコードのみ実行10その他: ジョブ並列化、仮想マシンのグレードアップ等
node_modulesのキャッシュ11strategy:matrix:node: ['16', '18']steps:- uses: actions/cache@v3id: cachewith:path: node_moduleskey: ${{ runner.os }}-node-${{ matrix.node }}-npm-${{ hashFiles('**/package-lock.json') }
- uses: actions/cache@v3if: steps.cache.outputs.cache-hit != 'true'with:path: |~/.npm~/.cache/Cypresskey: ${{ runner.os }}-node-${{ matrix.node }}-npm-${{ hashFiles('**/package-lock.json') }restore-keys: |${{ runner.os }}-node-${{ matrix.node }}-npm-- name: Install dependenciesif: steps.cache.outputs.cache-hit != 'true'run: npm ci他のディレクトリのキャッシュ12
@puku0x 13https://nx.dev/
@puku0xNx + Nx Cloud● nx affected による変更検知● Nx Cloudによるリモートキャッシュ○ CI時間平均 約10分 → 約5分※最短で1分未満14
@puku0x 15
@puku0x 16300時間/月 以上を削減!
@puku0x 17https://speakerdeck.com/puku0x/findynohurontoendoshe-ji-shua-xin-wotong-sitede-raretaji-shu-de-fu-zhai-tonoxiang-kihe-ifang
@puku0xNxはいいぞ@puku0xNoriyuki Shinpuku