我刚刚了解了GitHub上的Actions,我认为它很棒。
一开始让我感到震惊的一件事是,当我设置自托管运行器时,GitHub要求我在本地计算机上运行一堆命令,该计算机显然在专用网络中,并且没有暴露于互联网(入站-表示www无法访问它)。
但是,在安装了GitHub要求我安装的内容之后,似乎成功建立了一个Webhook,并且每次向我的主服务器推送/合并(在GitHub动作文件中设置)时,计算机上的工作人员都知道并启动了提取最新版本的仓库,并开始安装依赖项和其他CI / CD内容。
现在我很好奇的是,当GitHub在私有网络中时,GitHub实际上如何与我的VM对话?
我从没当过网络专家,所以我不确定为什么可以这样做。但这很有趣。
答案 0 :(得分:3)
不是GitHub正在连接到您的自托管运行程序(入站),而是自托管的运行程序本身已连接到GitHub(出站)。这就是为什么它起作用。是您的VM(运行者在专用网络中)与GitHub对话。 communication direction is reversed。自托管的运行程序连接到GitHub后,双方都保持连接打开状态。如果发生某些情况(打开PR,进行提交等),这将允许所有事件通过Github存储库通过连接推送给您的跑步者。转轮运行时,连接保持打开状态。当然,如果网络发生故障并且连接断开,则通信将停止工作。要修复运行程序定期向GitHub发送ping数据包以验证连接是否正常的情况,并尝试重新连接。