Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Nx CloudでCIを爆速にした話

Nx CloudでCIを爆速にした話

TechBrew 〜 一杯のお酒で繋がるエンジニアたち〜@福岡

puku0x

May 19, 2023
Tweet

More Decks by puku0x

Other Decks in Technology

Transcript

  1. @puku0x CI高速化のテクニック • キャッシュの活用 ~/.npm や node_modules 等をキャッシュ • 変更検知

    影響範囲のコードのみ実行 10 その他: ジョブ並列化、仮想マシンのグレードアップ等
  2. 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') }
  3. - 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
  4. @puku0x Nx + Nx Cloud • nx affected による変更検知 •

    Nx Cloudによるリモートキャッシュ ◦ CI時間平均 約10分 → 約5分 ※最短で1分未満 14