检查 GitHub Actions 的运行状况
可以使用 ghe-actions-check
命令行实用工具检查 你的 GitHub Enterprise Server 实例 上 GitHub Actions 的运行状况。 有关详细信息,请参阅 命令行实用程序 和 访问管理 shell (SSH)。
使用 GitHub Enterprise Server 自签名证书时配置自托管的运行器
我们强烈建议您在 GitHub Enterprise Server 上配置 TLS,并有信任的机构签名的证书。 虽然自签名证书可以工作,但自托管的运行器需要额外的配置,不推荐用于生产环境。 有关详细信息,请参阅“配置 TLS”。
在运行器上安装证书
为使自托管的运行器使用自签名证书连接到 GitHub Enterprise Server,您必须在运行器上安装证书以增���连接安全。
有关安装证书所需的步骤,请参阅运行器操作系统的文件。
配置 Node.JS 使用证书
大多数操作都以 JavaScript 编写并使用 Node.js,这不会使用操作系统证书存储。 要使自托管运行器使用证书,你必须在运行器计算机上设置 NODE_EXTRA_CA_CERTS
环境变量。
可以将环境变量设置为系统环境变量,或在自托管运行器应用程序目录(即运行器软件下载并解包到的目录)中名为 .env
的文件中进行声明。
例如:
NODE_EXTRA_CA_CERTS=/usr/share/ca-certificates/extra/mycertfile.crt
当自托管的运行器应用程序启动时,环境变量将被读取,因此您必须在配置或启动自托管的运行器应用程序之前设置环境变量。 如果您的证书配置更改,您必须重新启动自托管的运行器应用程序。
配置 Docker 容器使用证书
如果您在工作流程中使用 Docker 容器操作或服务容器,则除了设置上述环境变量外,您可能还需要在 Docker 映像中安装证书。
配置 GitHub Actions 的 HTTP 代理设置
如果在 GitHub 上配置了 HTTP 代理服务器:
- 必须将
.localhost
、127.0.0.1
和::1
添加到“HTTP 代理排除”**** 列表(以此顺序)。 - 如果外部存储位置不可路由,则还必须将外部存储 URL 添加到排除列表中。
有关更改代理设置的详细信息,请参阅“配置出站 Web 代理服务器”。
如果未正确配置这些设置,你可能会在设置或更改 GitHub Actions 配置时收到错误,例如 Resource unexpectedly moved to https://IP-ADDRESS
。
运行器未使用新主机名连接到 GitHub Enterprise Server
警告
初始设置后不要更改 GitHub Enterprise Server 的主机名。 更改主机名将会导致意外的行为,甚至包括实例中断和用户安全密钥失效。 如果更改了实例的主机名并遇到问题,请联系GitHub Enterprise 支持或GitHub 高级支持。
如果您在环境中使用新主机名部署 GitHub Enterprise Server,并且旧主机名不再解析到您的实例,则自托管运行器将无法连接到旧主机名,并且不会执行任何作业。
需要更新自承载运行器的配置,以便将新的主机名用于 你的 GitHub Enterprise Server 实例。 每个自托管运行器将需要以下程序之一:
- 在自托管运行器应用程序目录中,编辑
.runner
和.credentials
文件以将所有提及的旧主机名均替换为新主机名,然后重启自托管运行器应用程序。 - 使用 UI 从 GitHub Enterprise Server 移除运行器,并重新添加。 有关详细信息,请参阅 删除自托管的运行器 和 添加自托管的运行器。
Dependabot 触发现有工作流程时的故障疑难解答
为 你的 GitHub Enterprise Server 实例 设置 Dependabot 更新后,当现有工作流由 Dependabot 事件触发时,你可能会看到失败。
默认情况下,由 Dependabot 从 push
、pull_request
、pull_request_review
或 pull_request_review_comment
事件中触发的 GitHub Actions 工作流运行被视为从存储库分支中打开。 与其他参与者触发的工作流不同,这意味着它们会接收一个只读 GITHUB_TOKEN
,并且无权访问任何通常可用的机密。 这将导致尝试写入仓库的任何工作流程在由 Dependabot 触发时失败。
有三种方法可以解决此问题:
- 可以更新工作流,使其不再由 Dependabot 使用如下表达式触发:
if: github.actor != 'dependabot[bot]'
。 有关详细信息,请参阅“对工作流和操作中的表达式求值”。 - 可以修改工作流以使用包含
pull_request_target
的���步过程,该过程没有这些限制。 有关详细信息,请参阅“对 GitHub Actions 上的 Dependabot 进行故障排除”。 - 可为由 Dependabot 触发的工作流提供对机密的访问权限,并允许
permissions
术语增加GITHUB_TOKEN
的默认范围。 有关详细信息,请参阅下面的“提供由 Dependabot 访问机密触发的工作流以及增加的权限”。
提供由 Dependabot 机密访问权限和增加权限触发的工作流程
-
使用 SSH 登录到管理 shell。 有关详细信息,请参阅“访问管理 shell (SSH)”。
-
若要删除 Dependabot 在 你的 GitHub Enterprise Server 实例 上触发的工作流限制,请使用以下命令。
ghe-config app.actions.disable-dependabot-enforcement true
-
应用配置。
ghe-config-apply
-
返回到 GitHub Enterprise Server。
GitHub Actions 中的捆绑操作疑难解答
如果在 GitHub Enterprise Server 中安装 GitHub Actions 时收到以下错误,则可以通过安装官方捆绑操作和工作流模板来解决此问题。
A part of the Actions setup had problems and needs an administrator to resolve.
若要在 GitHub Enterprise Server 的指定组织内安装官方捆绑操作和工作流模板,请按照此过程进行操作。
-
确定将要存储官方捆绑操作和工作流模板的组织。 您可以创建新组织或重新使用现有组织。
- 若要创建新组织,请参阅“从头开始创建新组织”。
- 若在为此组织选择名称时需要帮助,请参阅“GitHub Actions for GitHub Enterprise Server 使用入门”。
-
使用 SSH 登录到管理 shell。 有关详细信息,请参阅“访问管理 shell (SSH)”。
-
要将组织指定为存储捆绑操作的位置,请使用
ghe-config
命令,将ORGANIZATION
替换为组织的名称。ghe-config app.actions.actions-org ORGANIZATION
and:
ghe-config app.actions.github-org ORGANIZATION
-
要将捆绑操作添加到您的组织,请取消设置 SHA。
ghe-config --unset 'app.actions.actions-repos-sha1sum'
-
应用配置。
ghe-config-apply
完成这些步骤后,你可以在“GitHub Actions for GitHub Enterprise Server 使用入门”中继续配置 GitHub Actions。