Skip to main content

管理部署环境

可以创建环境,并使用部署保护规则保护这些环境。 引用环境的作业在运行或访问环境的机密之前,必须遵循环境的任何保护规则。

谁可以使用此功能?

Repository owners

所有现行 GitHub 计划的公共存储库中都提供环境、环境机密和部署保护规则。 旧版计划(如 Bronze、Silver 或 Gold)中不提供这些内容。 要访问专用存储库或内部存储库中的环境、环境机密和部署分支,必须使用 GitHub Pro、GitHub Team 或 GitHub Enterprise 。 如果使用的是 GitHub Free、GitHub Pro 或 GitHub Team 计划,则其他部署保护规则(如等待计时器或需要审阅者)仅在公共存储库中提供。

先决条件

注意

具有 GitHub Free 计划的用户只能为公共存储库配置环境。 如果您将仓库从公开转换为私密,任何配置的保护规则或环境机密将被忽略, 并且您将无法配置任何环境。 如果将仓库转换回公共,您将有权访问以前配置的任何保护规则和环境机密。

使用 GitHub Team 的组织和使用 GitHub Pro 的用户可以为专用存储库配置环境。 有关详细信息,请参阅“GitHub 的计划”。

创建环境

要在个人帐户存储库中配置环境,你必须是存储库所有者。 若要在组织存储库中配置环境,必须具有 admin 访问权限。

注意

  • 使用 GitHub Team 的组织和使用 GitHub Pro 的用户可在专用存储库中创建环境。
  • 环境的某些功能对专用存储库不可用或可用性有限。 如果无法访问以下说明中描述的功能,请参阅相关步骤中链接的文档,了解可用性信息。
  1. 在 GitHub 上,导航到存储库的主页面。

  2. 在存储库名称下,单击 “设置”。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。

    存储库标头的屏幕截图,其中显示了选项卡。 “设置”选项卡以深橙色边框突出显示。

  3. 在左侧边栏中,单击“环境”。

  4. 单击“新建环境”。

  5. 为环境输入一个名称, 然后单击“配置环境”。 环境名称不区分大小写。 环境名称不能超过 255 个字符,且必须在仓库中唯一。

  6. (可选)指定必须批准使用此环境的工作流程作业的人员或团队。 有关详细信息,请参阅“Deployments and environments”。

    1. 选择“必需审阅者”。
    2. 最多可输入 6 人或团队。 只有一个必需的审查者需要批准该作业才能继续。
    3. (可选)若要防止用户批准其触发的工作流运行,请选择“阻止自评审”****。
    4. 单击“保存保护规则”。
  7. (可选)指定在允许使用此环境的工作流程作业继续之前要等待的时长。 有关详细信息,请参阅“Deployments and environments”。

    1. 选择“等待计时器”。
    2. 输入要等待的分钟数。
    3. 单击“保存保护规则”。
  8. (可选)禁止绕过配置的保护规则。 有关详细信息,请参阅“Deployments and environments”。

    1. 取消选择“允许管理员绕过配置的保护规则”。
    2. 单击“保存保护规则”。
  9. (可选)启用使用 GitHub Apps 创建的任何自定义部署保护规则。 有关详细信息,请参阅“Deployments and environments”。

    1. 选择要启用的自定义保护规则。
    2. 单击“保存保护规则”。
  10. (可选)指定哪些分支和标记可以部署到此环境。 有关详细信息,请参阅“Deployments and environments”。

    1. 在“部署分支”下拉列表中选择所需的选项。

    2. 如果选择“Selected branches and tags”,若要添加新规则,请单击“Add deployment branch or tag rule”********

    3. 在“Ref type”下拉菜单中,根据要应用的规则,单击“ Branch”或“ Tag”********。

    4. 输入想要允许的分支或标记的名称模式。

      注意

      必须单独为分支或标记配置名称模式。

    5. 单击 “添加规则”

  11. (可选)添加环境机密。 这些机密仅可用于使用环境的工作流程作业。 此外,使用此环境的工作流程作业只能在任何配置的规则(例如,必需的审查者)通过后才能访问这些机密。 有关详细信息,请参阅“Deployments and environments”。

    1. 在“环境机密”下,单击“添加机密” 。
    2. 输入机密名称。
    3. 输入机密值。
    4. 单击“添加机密”。
  12. (可选)添加环境变量。 这些变量仅可用于使用环境的工作流作业,并且只能通过 vars 上下文访问。 有关详细信息,请参阅“Deployments and environments”。

    1. 在“环境变量”下,单击“添加变量” 。
    2. 输入变量名称。
    3. 输入变量的值。
    4. 单击“添加变量”。

您还可以通过 REST API 创建和配置环境。 有关详细信息,请参阅“适用于部署环境的 REST API 终结点”、“GitHub Actions 机密的 REST API 终结点”、“GitHub Actions 变量的 REST API 终结点”和“适用于部署分支策略的 REST API 终结点”。

运行引用不存在的环境的工作流程将使用引用的名称创建环境。 如果从运行隐式页面生成(例如,从分支或文件夹源)创建了环境,则源分支将作为保护规则添加到环境。 否则,新创建的环境将不配置任何保护规则或机密。 可在仓库中编辑工作流程的任何人都可以通过工作流程文件创建环境,但只有仓库管理员才能配置环境。

删除环境

要在个人帐户存储库中配置环境,你必须是存储库所有者。 若要在组织存储库中配置环境,必须具有 admin 访问权限。

删除环境将删除与环境关联的所有机密和保护规则。 由于已删除环境的保护规则而正在等待的任何作业将自动失败。

  1. 在 GitHub 上,导航到存储库的主页面。

  2. 在存储库名称下,单击 “设置”。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。

    存储库标头的屏幕截图,其中显示了选项卡。 “设置”选项卡以深橙色边框突出显示。

  3. 在左侧边栏中,单击“环境”。

  4. 在要删除的环境旁边,单击

  5. 单击“我了解,删除此环境”。

您也可以通过 RESEST API 删除环境。 有关详细信息,请参阅“存储库的 REST API 终结点”。

环境与部署的关系

当引用环境的工作流作业运行时,它将创建一个部署对象并将 environment 属性设置为环境名称。 随着工作流的进行,它还将创建部署状态对象,并将 environment 属性设置为环境名称,将 environment_url 属性设置为环境的 URL(如果在工作流中指定),以及将 state 属性设置为作业的状态。

您可以通过 REST API 或 GraphQL API 访问这些对象。 您还可以订阅这些 web 挂钩事件。 有关详细信息,请参阅“存储库的 REST API 终结点”、“对象”(GraphQL API) 或“Webhook 事件和有效负载”。

后续步骤

GitHub Actions 具有多个用于管理部署的功能。 有关详细信息,请参阅“Deploying with GitHub Actions”。