首页 >开发工具 >git >如何在 github actions 中运行并行作业

如何在 github actions 中运行并行作业

DDD
DDD原创
2024-10-10 12:07:21994浏览

GitHub Actions allows for parallel job execution to enhance workflow efficiency. By employing the "parallel" keyword, multiple jobs run concurrently, reducing task completion times. The article explores the maximum number of parallel jobs,

如何在 github actions 中运行并行作业

如何在 GitHub Actions 中运行并行作业

GitHub Actions 是一个用于自动化软件开发工作流程的强大工具。 GitHub Actions 如此强大的功能之一是运行并行作业的能力。对于可以分解为更小的独立步骤的任务来说,这可以节省大量时间。

要在 GitHub Actions 中运行并行作业,您需要在工作流程文件中使用 parallel 关键字。 parallel 关键字采用作业名称列表作为其参数。例如,以下工作流文件将并行运行两个作业 job1job2

<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>

运行此工作流时,job1job2 都将开始运行同时。一旦两个作业都成功完成,工作流程就会完成。

GitHub Actions 中可以同时运行多少个并行作业?

GitHub Actions 中可以同时运行的并行作业数量取决于关于您正在使用的跑步者的类型。对于自托管运行器,可以运行的最大并行作业数等于运行器上的 CPU 数量。对于 GitHub 托管的运行器,可以运行的并行作业的最大数量为 20。

GitHub Actions 中的并行作业可以共享相同的 Secret吗?

是的,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 中调试并行作业?

有几种不同的方法可以调试并行GitHub Actions 中的职位。一种方法是使用 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 中调试并行作业的另一种方法是运行 -vv CLI 时使用 github-actions 标志。此标志将打印有关工作流程的大量附加信息,包括正在执行的步骤和正在使用的资源。

要使用 -vv 标志,请运行以下命令:

<code>github-actions -vv run workflow.yaml</code>

-vv 标志的输出有助于解决并行作业的问题。

以上是如何在 github actions 中运行并行作业的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn