【问题标题】:How does GitHub action self-hosted runner work?GitHub 操作自托管运行器如何工作?
【发布时间】:2021-02-04 00:43:22
【问题描述】:

我刚刚了解了 GitHub Actions,我认为它非常棒。

一开始让我印象深刻的一件事是,当我设置自托管运行器时,GitHub 要求我在我的本地机器上运行一堆命令,这显然是在私有网络中并且它没有暴露在互联网(入站 - 意味着 www 无法访问它)。

但是,在安装了 GitHub 要求我安装的内容之后,似乎一个 webhook 设置成功,并且每次推送/合并到我的主人(在 GitHub 操作文件中设置)时,我电脑上的工作人员都知道并开始拉取最新版本的 repo 并开始安装依赖项和其他 CI/CD 内容。

现在我很好奇的是,当我的虚拟机位于专用网络中时,GitHub 是如何与我的虚拟机对话的?

我从来都不是网络人,所以我不太确定为什么会这样。但它很迷人。

【问题讨论】:

    标签: github-actions


    【解决方案1】:

    并不是 GitHub 连接到您的自托管运行器(入站),而是自托管运行器本身连接到 GitHub(出站)。这就是它起作用的原因。这是您的虚拟机(与专用网络中的运行器)与 GitHub 通信。 communication direction is reversed。在您的自托管运行器连接到 GitHub 后,双方都会保持连接打开。这允许所有事件通过 Github 存储库的连接推送到您的跑步者,如果发生某些事情(PR 已打开,提交已完成等......)。流道运行时,连接保持打开状态。当然,如果网络出现问题并且连接中断,通信将停止工作。修复 runner 定期向 GitHub 发送 ping 数据包以验证连接是否正常,如果不正常则尝试重新连接。

    【讨论】:

    猜你喜欢
    • 2023-03-27
    • 2022-08-13
    • 1970-01-01
    • 2021-10-14
    • 2023-02-17
    • 2021-03-23
    • 2021-05-14
    • 2022-01-08
    • 2023-01-05
    相关资源
    最近更新 更多