GitLab CI手动启动作业(部署)

Pek*_*ick 15 continuous-deployment continuous-delivery gitlab gitlab-ci gitlab-ci-runner

是否可以将gitlab ci作业标记为手动启动?

我需要它来部署应用程序,但我想决定它是否将被部署

MOn*_*DaR 16

自第一个答案发布以来,情况发生了变化.这是原始Gitlab问题的链接.它现在支持做类似的事情

production:
  stage: deploy
  script: run-deployment $OMNIBUS_GITLAB_PACKAGE
  environment: production
  when: manual
Run Code Online (Sandbox Code Playgroud)

注意when: manual属性.UI更新自身以为用户提供触发作业的方式.

  • 有没有办法将这种手动方式与唯一/更改规则结合使用?我的意思是,当 ** 在 repo 中我的目标目录中没有** 更改(但有一个影响配置 yaml 中的构建)时,我仍然希望能够手动触发管道,但仍然让它自动运行当**有**时。现在,它等待我在有时触发它,而在没有变化时根本不出现。 (4认同)

Von*_*onC 6

GitLab 13.5(2020 年 10 月)添加了更多功能when: manual,以支持trigger

\n
\n

通过手动作业触发下游或子管道

\n

以前,无法将触发器作业配置为等待手动操作。这使得配置下游或子管道触发器以等待用户在运行之前单击它们变得具有挑战性。

\n

在此版本中,我们\xe2\x80\x99添加了添加触发作业的功能when: manual。使用此关键字使触发作业等待,直到您单击播放按钮。这使您可以更好地控制下游和子管道,并且它们仅在您希望时运行。

\n

https://about.gitlab.com/images/13_5/manual-trigger-jobs.gif - 通过手动作业触发下游或子管道

\n

请参阅文档问题

\n
\n
\n

GitLab 14.8(2022 年 2 月)添加了另一个选项/方法:

\n
\n

部署审批API

\n

我们很高兴通过 API 引入部署批准。

\n

在此功能之前,团队能够通过要求在管道中执行手动作业作为解决方法来保护环境免受任何更改。

\n
\n

< 现在,部署批准是我们平台中的一流概念。
\n团队可以为特定环境配置多个审批者,并使用新的 API 端点来批准或拒绝对该环境的部署。

\n
\n

此功能使团队能够创建工作流程,以便在将软件部署到生产或其他受保护环境之前获得适当的批准。

\n

请参阅文档问题

\n
\n

所以:

\n
curl --header \'Content-Type: application/json\' --request POST \\\n     --data \'{"name": "production", "deploy_access_levels": [{"group_id": 9899826}], "required_approval_count": 1}\' \\\n     --header "PRIVATE-TOKEN: <your_access_token>" \\\n     "https://gitlab.example.com/api/v4/projects/22034114/protected_environments"\n
Run Code Online (Sandbox Code Playgroud)\n
\n

GitLab 15.7(2022 年 12 月)添加了:

\n
\n

使用更新的变量重试手动作业

\n

运行手动作业时,用户可以指定要在作业中使用的额外 CI/CD 变量。

\n

但是,如果您想重试相同的作业,则始终必须使用与第一次相同的变量。
\n如果您想使用不同的变量运行作业,则必须运行新的管道。

\n

在此版本中,我们添加了在每次运行手动作业时(包括重试作业时)指定变量的功能

\n

这提供了更大的灵活性和便利性,因为您可以在每次运行中使用一组不同的变量随时重试手动作业。

\n

变量

\n

请参阅文档问题

\n
\n