GitHub Actions - 同一台机器上的并行自托管运行器

Tom*_*iak 7 continuous-integration github multiprocessing devops github-actions

自托管运行器中并行性主题相关的问题:

一个自托管运行器一次只能运行一个作业,当没有可用运行器空闲时,后续作业将排队等待,直到有可用运行器空闲。

我可以通过在具有多个 CPU 的同一台机器上运行多个自托管运行器来实现并行性吗?

GitHub Actions - Getting Started - Usage Limits我发现:

您可以在您的帐户中运行的并发作业数取决于您的 GitHub 计划,如下表所示。如果超过,任何其他作业都会排队。自托管运行器没有并发限制。

但我不确定如何在多核机器的上下文中理解这一点。

Pet*_*uin 16

一名运行者同时只能运行一项作业。这与机器有多少个核心无关。

但是,您可以在同一台计算机上安装并运行多个运行程序。

当您完成安装向导时,系统会要求您提供一个目录。如果您用于/home/github/action-runner第一个目录,则可以用于/home/github/action-runner-2第二个目录。他们将拥有完全不同的工作空间。

为额外的跑步者指定一个唯一的名称。

如果您使用 systemd 管理服务,最后一步是为额外运行创建第二个 systemd 单元文件,其中包含唯一的服务名称和与WorkingDirectory=您上面使用的目录相匹配的目录:

# for example, this might be /etc/systemd/system/ actions.runner.MyCorp.ci-2.service
[Unit]
Description=GitHub Actions Runner (RideAmigosCorp.ci-2)
After=network.target

[Service]
ExecStart=/home/github/action-runner/runsvc.sh
User=github
# The working directory here must match the one during setup
WorkingDirectory=/home/github/action-runner-2
KillMode=process
KillSignal=SIGTERM
TimeoutStopSec=5min

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

  • 您是否在运行者之间共享存储库的 _work 目录?如果我在一个脚本中有多个作业,我希望它们使用两个运行器,但它们需要共享每个运行器生成的文件。 (5认同)