Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Nx CloudでCIを爆速にした話 TechBrew 〜 一杯のお酒で繋がるエンジニアたち〜@福岡 @puku0x Noriyuki Shinpuku
Slide 2
Slide 2 text
@puku0x 2
Slide 3
Slide 3 text
@puku0x 3 CIにどれぐらい時間がかかっていますか?
Slide 4
Slide 4 text
@puku0x 成長のジレンマ 4 機能追加 コード量 増 CI時間 増
Slide 5
Slide 5 text
@puku0x 5 CIが遅いとどうなる?
Slide 6
Slide 6 text
@puku0x レビューが遅くなる 6 20分後でいいや
Slide 7
Slide 7 text
@puku0x 7 ブランチの生存期間が 延びるとどうなる?
Slide 8
Slide 8 text
@puku0x コンフリクトが増える 8
Slide 9
Slide 9 text
@puku0x 9 CI高速化がカギ
Slide 10
Slide 10 text
@puku0x CI高速化のテクニック ● キャッシュの活用 ~/.npm や node_modules 等をキャッシュ ● 変更検知 影響範囲のコードのみ実行 10 その他: ジョブ並列化、仮想マシンのグレードアップ等
Slide 11
Slide 11 text
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') }
Slide 12
Slide 12 text
- 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
Slide 13
Slide 13 text
@puku0x 13 https://nx.dev/
Slide 14
Slide 14 text
@puku0x Nx + Nx Cloud ● nx affected による変更検知 ● Nx Cloudによるリモートキャッシュ ○ CI時間平均 約10分 → 約5分 ※最短で1分未満 14
Slide 15
Slide 15 text
@puku0x 15
Slide 16
Slide 16 text
@puku0x 16 300時間/月 以上を削減!
Slide 17
Slide 17 text
@puku0x 17 https://speakerdeck.com/puku0x/findynohurontoendoshe-ji-shua-xin-wotong-sitede-raretaji-shu-de-fu-zhai-tonoxiang-kihe-ifang
Slide 18
Slide 18 text
@puku0x Nxはいいぞ @puku0x Noriyuki Shinpuku