【问题标题】:Looking for a way to run a workflow on all self-hosted agents in a pool for Github actions寻找一种在池中的所有自托管代理上运行工作流以进行 Github 操作的方法
【发布时间】:2021-06-06 00:17:19
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    要添加预定的工作,运行命令crontab -e,选择编辑器并在末尾添加行:

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

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

    【讨论】:

    • 是的。我明白你的意思。我为每个代理创建了代理名称标签,以便我可以操作它们,然后我运行一个矩阵作业进行清洁。我没有看到更好的解决方案。谢谢你的回复。赏金是你的。
    猜你喜欢
    • 2021-02-04
    • 1970-01-01
    • 2023-03-27
    • 2021-05-23
    • 2020-01-21
    • 2023-02-17
    • 2022-08-13
    • 1970-01-01
    • 2021-03-23
    相关资源
    最近更新 更多