GitHub Actions を使用すると、ジョブの並列実行が可能になり、ワークフローの効率が向上します。 「Parallel」キーワードを使用すると、複数のジョブが同時に実行され、タスクの完了時間が短縮されます。この記事では、並列ジョブの最大数について説明します。
GitHub Actions は、自動化のための強力なツールです。ソフトウェア開発ワークフロー。 GitHub Actions を非常に強力にする機能の 1 つは、並列ジョブを実行する機能です。これにより、タスクをより小さな独立したステップに分割できるため、時間を大幅に節約できます。
GitHub Actions で並列ジョブを実行するには、ワークフロー ファイルで parallel
キーワードを使用する必要があります。 parallel
キーワードは、ジョブ名のリストを引数として受け取ります。たとえば、次のワークフロー ファイルは、2 つのジョブ job1
と job2
を並行して実行します。
<code class="yaml">name: My Workflow on: [push] jobs: job1: runs-on: ubuntu-latest steps: - echo "Hello from job1!" job2: runs-on: ubuntu-latest steps: - echo "Hello from job2!"</code>
このワークフローが実行されると、job1
と job2
の両方が に実行を開始します。同じ時間です。両方のジョブが正常に完了すると、ワークフローが完了します。
GitHub Actions で実行できる同時並列ジョブの数は状況によって異なります。使用しているランナーの種類によって異なります。自己ホスト型ランナーの場合、実行できる並列ジョブの最大数は、ランナー上の CPU の数と同じです。 GitHub でホストされているランナーの場合、実行できる並列ジョブの最大数は 20 です。
はい、GitHub Actions の並列ジョブは共有できます。同じ秘密を共有します。並列ジョブ間でシークレットを共有するには、secrets
コンテキストを使用できます。 secrets
コンテキストは、ワークフローで使用できるすべてのシークレットを含む辞書です。
ジョブ内の secrets
コンテキストにアクセスするには、secrets
キーワードを使用できます。たとえば、次のジョブは MY_SECRET
シークレットの値を出力します:
<code class="yaml">name: My Job on: [push] jobs: job1: runs-on: ubuntu-latest steps: - echo "The value of MY_SECRET is: ${{ secrets.MY_SECRET }}"</code>
並列をデバッグするには、いくつかの方法があります。 GitHub Actions のジョブ。 1 つの方法は、actions/runner-debug
アクションを使用することです。このアクションは、ジョブで使用できる環境変数など、ランナーに関する多くの有用な情報を出力します。
actions/runner-debug
アクションを使用するには、ワークフロー ファイルに次の行を追加します。
<code class="yaml">name: My Workflow on: [push] jobs: job1: runs-on: ubuntu-latest steps: - uses: actions/runner-debug@v1</code>
actions/runner-debug
アクションをワークフロー ファイルに追加したら、ワークフローを実行して、GitHub Actions ログの出力を確認できます。
GitHub Actions で並列ジョブをデバッグするもう 1 つの方法は、次のとおりです。 -vv
CLI を実行する場合は、github-actions
フラグを使用します。このフラグは、実行されているステップや使用されているリソースなど、ワークフローに関する多くの追加情報を出力します。
-vv
フラグを使用するには、次のコマンドを実行します。
<code>github-actions -vv run workflow.yaml</code>
-vv
フラグの出力は、並列ジョブの問題のトラブルシューティングに役立ちます。
以上がGithubアクションで並列ジョブを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。