寻找一种在池中的所有自托管代理上运行工作流以进行 Github 操作的方法

时间:2021-03-08 04:35:48

标签: continuous-integration workflow github-actions github-actions-self-hosted-runners

我正在尝试对所有代理运行维护工作流。 这是一项类似于“docker system prune”的清理工作。我希望它每周日晚上在所有自托管代理(大约 12 个代理)上运行。 我注意到工作流可以按计划事件运行。这很棒。 但我没有找到让所有自托管代理运行工作流的方法。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我认为这个问题更多地与您的操作系统有关,而不是与 GitHub 端的工作流程有关。可能可以按照工作流来做,但是您的代理需要要么在主机操作系统上,要么可以访问 Docker 套接字。 (我不知道你是如何托管它们的)。无论哪种方式,都可能不安全,具体取决于主机是否也用于其他用途。

作为 GitHub 文档 are stating,您应对自己的操作系统负责。

通常,您可以使用 cron 安排维护作业,这可能是最常用的一项。如何安装,取决于您的操作系统。

要添加计划工作,请运行命令 crontab -e,选择编辑器并在末尾添加一行:

0 3 * * 0 /usr/bin/docker system prune -f 每周日凌晨 3:00 运行。

但是,如果您真的想使用工作流,您可以阅读 here. 上的一些文档,其中指出,“标签允许您根据特定类型的自托管运行器,根据它们的共享特性将工作流作业发送到特定类型的自托管运行器.”因此,您可以为每个具有不同标签的跑步者创建特定的维护工作。这需要许多预定的作业,因为运行程序不打算为同一个作业多次启动。