GitHub action自托管运行器如何工作?

时间:2020-10-21 06:31:17

标签: github-actions

我刚刚了解了GitHub上的Actions,我认为它很棒。

一开始让我感到震惊的一件事是,当我设置自托管运行器时,GitHub要求我在本地计算机上运行一堆命令,该计算机显然在专用网络中,并且没有暴露于互联网(入站-表示www无法访问它)。

但是,在安装了GitHub要求我安装的内容之后,似乎成功建立了一个Webhook,并且每次向我的主服务器推送/合并(在GitHub动作文件中设置)时,计算机上的工作人员都知道并启动了提取最新版本的仓库,并开始安装依赖项和其他CI / CD内容。

现在我很好奇的是,当GitHub在私有网络中时,GitHub实际上如何与我的VM对话?

我从没当过网络专家,所以我不确定为什么可以这样做。但这很有趣。

1 个答案:

答案 0 :(得分:3)

不是GitHub正在连接到您的自托管运行程序(入站),而是自托管的运行程序本身已连接到GitHub(出站)。这就是为什么它起作用。是您的VM(运行者在专用网络中)与GitHub对话。 communication direction is reversed。自托管的运行程序连接到GitHub后,双方都保持连接打开状态。如果发生某些情况(打开PR,进行提交等),这将允许所有事件通过Github存储库通过连接推送给您的跑步者。转轮运行时,连接保持打开状态。当然,如果网络发生故障并且连接断开,则通信将停止工作。要修复运行程序定期向GitHub发送ping数据包以验证连接是否正常的情况,并尝试重新连接。