ホームページ > ウェブフロントエンド > jsチュートリアル > すぐにできるCI高速化【GitHub Actions】!

すぐにできるCI高速化【GitHub Actions】!

DDD
リリース: 2024-12-31 17:52:14
オリジナル
428 人が閲覧しました

ays to speed up CI [GitHub Actions] that you can do immediately!

CI の実行が遅いことにイライラしている人向け。

GitHub Actions を使用して CI の実行を高速化する 3 つの方法を次に示します。

CI を高速化する 3 つの方法 [GitHub Actions]。

この記事では次の 3 つの方法を紹介します。

  • 仕事を分割する
  • パッケージキャッシュ処理の追加
  • テストを分割して並列実行します

ジョブを分割する

各ジョブが並行して実行されるようにジョブを分割できます

たとえば、単体テストの実行とリンターの実行は、多くの場合独立して実行できます。

これらを 1 つのジョブに連続して記述するよりも、別々のジョブに記述する方が効率的です。

jobs:.
  test:.
    runs-on: ubuntu-22.04
    steps:.
    ...

  lint: ...
    runs-on: ubuntu-22.04
    steps: ...
    ...
ログイン後にコピー

パッケージのキャッシュ処理を追加します。

時間のかかるパッケージのインストールプロセスをスキップするには、パッケージをキャッシュすることをお勧めします

キャッシュプロセスを実装するには、公式のアクション/キャッシュを使用します。

以下の場合、OS、Nodeのバージョン、パッケージ情報を管理するファイル(package-lock.json)に変更があった場合のみnpm ciが実行され、それ以外の場合はキャッシュが使用されます。

- name: cache and restore packages
  id: cache-npm
  uses: actions/cache@v4.0.2
  with: node_modules
    path: node_modules
    key: ${{ runner.os }}-${{ steps.tool_versions.outputs.nodejs }}-${{ hashFiles(‘**/package-lock.json’) }}

- name: install npm packages
  if: steps.cache-npm.outputs.cache-hit ! = ‘true’
  run: npm ci
  shell: bash
ログイン後にコピー

テストを分割して並行して実行する

テストの実行に時間がかかる場合は、テストを分割し、それぞれを並行して実行することでプロセスを高速化できます。

たとえば、Jest の場合、マトリックス戦略とコマンド オプション --shard を使用できます。マトリックス戦略は、テストを分割して並列実行するシンプルで簡単な方法です。

マトリックス戦略は、単一のジョブ内の変数で定義された値ごとにジョブを実行する方法であり、--shard はテストを分割するオプションです。

これらを使用すると、次のようなワークフローを定義できます。

jobs:
  test:
    runs-on: ubuntu-22.04
    strategy:
      matrix:
        shard: [1/4, 2/4, 3/4, 4/4]
    steps:
      - name: checkout
        uses: actions/checkout@v3

      - name: setup environment
        uses: ./.github/actions/setup

      - name: run test
        run: npx jest --ci --shard=${{ matrix.shard }}
ログイン後にコピー

これにより、4 つのジョブが並行して実行され、それぞれがテストの 4 分の 1 を実行します

Jest 以外に --shard のようなオプションがあるかどうかはわかりませんが、アイデア自体はどの言語にも適用できます。

他の方法もあります。

CIの高速化を実現する簡単な方法として、以下の3つの方法を紹介しました。

  • 仕事を分割する
  • パッケージキャッシュ処理を追加
  • テストを分割して並列実行

ただし、これらに加えて、より大きなランナーを使用したり、変更が加えられた領域のみでテストを実行したりすることもできます。速度を向上させる方法は他にもたくさんあります。

時間と予算を考慮して、可能な範囲で少しずつ速度を向上させることをお勧めします。

以上がすぐにできるCI高速化【GitHub Actions】!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート