GitLab 12.2:用于管道和设计管理的有向无环图


令人兴奋的GitLab 12.2版本将帮助团队简化管道,扩大协作并管理项目相互依赖性。 详细信息如下。


更快,更灵活的管道


需要CI管道来自动化组装和测试任务,以加快软件交付速度并避免人为固有的错误。 但是在某些情况下,GitLab CI / CD管道的效率远非理想。 GitLab 12.2现在支持有向非循环图(DAG)来创建和管理详细的任务依赖关系,而不是依赖顺序步骤。 这是一个超高效的工具,您的CI管道可以使用它更快,更高效地工作。


设计管理


软件开发是一项团队运动,我们希望所有人都能使用它。 在版本12.2中,我们提供了新功能,可在GitLab中启用设计人员和设计管理。 设计管理将使提交,版本控制和在设计工件上进行协作变得更加容易,从而使团队工作更加有效,而且只有一个事实来源。


我们刚刚开始在GitLab上进行设计工作流,如果您对我们的设计管理策略有所贡献,我们将非常高兴。


对项目之间的请求依赖关系进行marge


在复杂的系统中,通常会有多个项目在代码更改之间具有相互依赖性,在这些项目中,更改的应用顺序非常重要。 GitLab现在支持项目之间的合并请求依赖关系,以确定依赖关系,并防止与错误顺序应用更改相关的错误。 错误越少,重做的次数就越少,部署更改的速度就越快。


不仅如此!


GitLab 12.2具有许多很棒的功能,以至于无法谈论所有这些功能。 通过域限制组成员身份 ,功能开关的百分比和用户ID的部署策略 ,合并请求中的安全批准以及现在具有范围的环境变量已包含在Core版本中 。 继续阅读并了解有关每个功能的更多信息。


本月最有价值员工( MVP-Fabio Papa

感谢Fabio,在GitLab 12.2中出现了一个新参数,不仅拥有者而且维护者都可以使用它创建子组。 Fabio还为GitLab 12.0和GitLab 11.10的发布做出了宝贵的贡献。

感谢Fabio

GitLab 12.2的主要功能


GitLab管道的有向非循环图


核心,入门,高级,终极,免费,古铜,银,金


在简单的管道中,必须先完成一个阶段中的所有任务,然后再进行下一个阶段。 在许多管道中,您需要在部署之前进行所有测试。 但是在更复杂的管道中,有时您希望在上一个阶段完成之前就开始一个阶段的任务。 例如,一个项目在多阶段管道中为Android和iOS创建应用程序。 最有可能的是,您希望iOS应用程序的部署在通过iOS的测试后立即开始,以免等到所有Android的测试通过后再开始。 总计算时间将相同,而物理时间将不同。 为了简化这种情况下的工作,并为您提供一种有效且灵活的工具来定义复杂的管道,我们添加了needs:关键字,该关键字在.gitlab-ci.yml定义了作业之间的关系。 使用needs关键字,您可以指定一个任务必须在另一个任务之后完成。 当第一个任务完成时,下一个阶段依赖于它的任务将立即开始执行,而无需等待上一个阶段中的其余任务。 在GitLab内部,我们使用有向无环图实现了此功能。 本质上,当GitLab根据您的配置创建管道时,它会使用一组复杂的规则来确定任务的顺序,而不仅仅是在完成上一个任务之后才在一个阶段启动任务。 首先,流水线的执行效率更高,其次,基于此,可以实现其他高级功能。 像上面的示例一样,立即使用needs关键字创建管道,或者在几个不相关的服务存储在同一存储库中并且彼此不等待的情况下,在有趣的新单一存储库场景中使用它。



设计注释


高级,终极,银,金


使用设计注释,设计人员和开发人员可以一起进行设计,而在各个方面都留下评论。 通过解决任务设计以支持这种协作,我们继续在GitLab上完善任务,将其作为单一事实来源。 同时,我们提供了反馈和设计讨论的框架。


我们刚刚开始在GitLab上进行设计工作流程,如果您对我们的战略有所贡献,我们将非常高兴。


设计管理目前处于Alpha阶段,并且随时可能更改,恕不另行通知。 要管理设计,必须启用大文件存储(LFS)



对项目之间的请求依赖关系进行marge


高级,终极,银,金


发布几种相关产品的公司经常使用公共服务和库,以免两次解决同一问题。 通常,它们存储在单独的项目中,但是在这种情况下,如果需要在多个组件中更改功能,则很难协调服务及其使用者之间的更改。


在GitLab 12.2中,项目之间的合并请求依赖关系使您可以定义依赖关系,从而不会以错误的顺序应用更改。 在代码审查中查看这些关系也很方便,以便审查者更容易理解所有更改。



域的组成员资格限制


高级,终极,银,金


对于注重安全的组织,控制对项目和团队的访问权限以管理风险非常重要。 在版本12.2中,我们为管理员和组所有者添加了其他访问控制工具。 现在,您只能将组成员身份授予具有指定域中电子邮件地址的用户。


这意味着在YourCompany中,只有具有yourcompany.com地址的用户才可以包括在该组中,所有者将无法意外添加未授权的用户。



功能开关的百分比部署策略


高级,终极,银,金


现在,您可以为功能开关选择百分比部署策略。 按百分比部署时,可以分别为每个环境和每个交换机设置百分比。 配置百分比部署并启用交换机后,该功能将显示给配置的登录用户百分比。 这使您可以执行受控的部署并监视目标环境的行为以获得预期结果。



功能开关的用户身份部署策略


高级,终极,银,金


现在,您可以通过用户ID为功能开关选择部署策略。 通过此策略,您可以指定用户标识符列表,并用逗号分隔,然后仅对某些用户启用该功能。 您也只能在用户群的某些组或部分上测试功能。



Marge要求安全批准


终极金


现在,可以保证引入新漏洞的合并请求将不会应用,直到负责人审核并批准更改为止。


因此,您和您的团队可以更轻松地遵守要求和策略,并且新的漏洞也不会偶然泄漏到代码库中。



手动启动任务时指定变量


核心,入门,高级,终极,免费,古铜,银,金


现在,当您手动启动任务时,您可以重新定义或提供任务将使用的新变量。 因此,在管道中设置自定义或可重复使用的任务甚至对任务进行故障排除将更加容易。



范围环境变量现在在Core中可用


核心,入门,高级,终极,免费,古铜,银,金*


将环境变量限制到特定区域的功能出现在GitLab Premium 9.4中 ,现在可用于GitLab Core。 此功能提供了设置各种变量(例如,用于访问环境中不同基础结构的不同私钥)以及在开发生命周期中使用多个环境的灵活性。
我们根据购买者的级别划分此功能的源代码,以便每个人都可以使用它并参与其开发。



GitLab 12.2中的其他改进


NPM注册表现在支持使用GitLab个人访问令牌进行身份验证


高级,终极,银,金


GitLab NPM注册表允许Javascript开发人员使用其GitLab实例编译,发布和版本化NPM软件包。 NPM需要使用OAuth进行身份验证,并且在版本12.2之前,GitLab个人访问令牌不支持OAuth。 用户必须创建自己的令牌(在GitLab外部)才能使用NPM注册表,并且不可能使用两因素身份验证。 此解决方案不适用于企业客户。


我们很高兴地宣布,在版本12.2中,我们支持使用GitLab 个人访问令牌进行身份验证。 GitLab个人访问令牌可使用两因素身份验证,并允许用户选择范围和有效期策略。 只需将您的个人访问令牌添加到.nprmrc文件,然后输入GitLab NPM注册表即可发布和下载软件包。


为项目加注星标的用户列表


核心,入门,高级,终极,免费,古铜,银,金


要跟踪有价值的项目,可以用星号标记它们。 感谢社区的投入,您现在可以看到为特定项目添加了标签的用户列表。 为此,请在项目页面上单击此类用户的数量。 该列表在Projects API中也可用。


标记的项目可以在用户配置文件中查看。


感谢您的贡献, Camil Staps



维护者可以创建子组


核心,入门,高级,终极,免费,古铜,银,金


在需要灵活性的大型组织中,子组可以帮助维护不断增长的实例中的秩序。 现在,所有者可以允许维护者创建子组。 使用此选项,组中的维护者将能够快速且独立地采取行动,而无需向组的所有者寻求帮助。


感谢法比奥·帕帕Fabio Papa)的贡献!



合并请求的新推送选项


核心,入门,高级,终极,免费,古铜,银,金


在成功完成管道之后,GitLab已经支持打开合并请求并自定义其应用程序-这就是Git推送团队中的全部内容。 现在,应用较小的更改既快捷又容易。


GitLab 12.2发布了新的推送选项:


  • 配置合并后的分支删除。
  • 更改合并请求的标题。
  • 更改合并请求的描述。

改进了差异文件部署


核心,入门,高级,终极,免费,古铜,银,金


查看差异文件时,大多数行都被隐藏而没有更改,因此更改立即可见。 但是有时您需要更多上下文。


在GitLab 12.2中,可以完全或逐渐打开隐藏的行范围。 以前,只能从范围的底部逐渐打开隐藏的行范围。



在组级别批量编辑任务快捷方式


高级,终极,银,金


用户可以在一个项目中同时更改许多任务的快捷方式。 GitLab 12.2引入了在组级别批量编辑许多任务的快捷方式的功能,以使快捷方式更易于管理。


将组分配为代码所有者


入门,优质,终极,古铜,银


谁应该检查更改通常并不明显。 如果将代码所有者分配给文件,将更加容易。 约会后,您会在查看文件时看到所有者,并自动将它们添加为合并请求的批准者。
现在,在GitLab 12.2中,您可以将整个组分配给代码所有者,而不仅仅是用户在GitLab和电子邮件上的名称。 如果分配了一个组,则在团队变更的情况下,尤其是在使用LDAP管理组成员身份时,代码所有者将不会被遗忘。


Git Blame API


核心,入门,高级,终极,免费,古铜,银,金


了解谁最后一次更改了代码行以及为什么更改代码,以便进行后续更改并了解从谁那里获取反馈,这很有用。 使用Git blame团队,可以轻松找到此信息。


在GitLab 12.2中,新的Blame API直接从GitLab而不是通过存储库检索此信息。 这对于基于最近更改文件的用户的脚本和自动化非常有用。


感谢Oleg Zubchenko贡献


设计管理下载


高级,终极,银,金


现在,借助用于在GitLab上管理设计的下载功能,设计人员和开发人员可以在GitLab任务中共同处理设计。 可以将设计上载到任务中的新区域,以方便跟踪和协作。



设计的版本控制


高级,终极,银,金


在GitLab 12.2中,我们引入了设计的版本控制。 借助版本控制,您可以轻松查看随时间变化的变化并跟踪这些变化和进度。



多次删除容器注册表


核心,入门,高级,终极,免费,古铜,银,金


保持容器注册表中的顺序非常重要。 随着时间的流逝,图像会积累起来,并使磁盘混乱。 如果标签太多,则“ 包”>“容器注册表”中的容器注册表管理页面的加载时间延长,并且可能难以使用。


以前,只有少数注册表管理选项,它们都有自己的缺陷。 您可以使用批量标签删除API垃圾回收来自动执行清理,但是为此您必须编写和维护脚本。 也可以从控制页面手动删除图像和标签,但这会花费太多时间,因为您必须一次删除一个图像和标签。


现在,GitLab界面允许更快地进行手动清洁。 一次选择多个标签,如果选择图像,则将自动选择与其关联的所有标签。 现在,维护注册表将更加容易,您将节省存储空间并保持页面性能。 我们很高兴在容器注册表中显示此添加项,并正在准备新的便捷操作。 不要错过未来的增强功能,例如自定义保留策略和到期日期的功能



手动任务清单


核心,入门,高级,终极,免费,古铜,银,金


安排大量任务并不容易-您需要指定执行的优先级和顺序,例如,清理积压的工作。


在版本12.2中,您可以在“ 手动”模式下手动对任务列表进行排序,您可以在其中将任务拖放到列表上并以任何顺序排列它们。


在启用了“ 手动”模式的所有项目任务列表和组任务列表中,该订单将保存在整个实例中。



每个环境的Kubernetes命名空间


核心,入门,高级,终极,免费,古铜,银,金


在多个环境中使用单个Kubernetes集群可能是有益的。 例如,如果将一个群集用于开发和暂存,则可以降低管理成本,因为您只需要管理一个群集。 而且您可以节省基础架构-Kubernetes可以在更少的节点上计划来自两种环境的Pod。


以前,GitLab无法充分支持这种情况,并且项目中的所有环境都部署在同一名称空间中。 如果每个环境需要不同的权限(例如,您想允许工程师部署到开发环境中而不是暂存),则必须启动一个单独的集群。 GitLab Kubernetes集成现在为每个项目环境使用专用的命名空间,并且您可以微调每个环境的权限,以充分享受将单个集群用于多个环境的好处。


Kubernetes用户将能够在不同环境中使用同一集群,并且不必将所有环境都部署在同一名称空间中。 此外,操作员可以详细配置每个环境的权限,以便用户可以部署到某些环境,但不能部署到所有环境。


从Kubernetes GitLab托管应用程序卸载Cert Manager


核心,入门,高级,终极,免费,古铜,银,金


如果您通过GitLab Kubernetes在Kubernetes集群中安装了Cert Manager,现在可以在集群页面上单击一下以将其删除。


从Kubernetes GitLab托管应用程序中删除头盔


核心,入门,高级,终极,免费,古铜,银,金


如果您通过GitLab Kubernetes在Kubernetes集群中安装了Helm,现在您只需单击一下集群页面即可将其删除。


从Kubernetes GitLab托管应用程序中删除Knative


核心,入门,高级,终极,免费,古铜,银,金


如果您通过GitLab Kubernetes在Kubernetes集群中安装了Knative,现在只需单击一下集群页面即可将其删除。


关闭电子邮件通知 组或项目的邮件


核心,入门,高级,终极,免费,古铜,银,金


现在,所有者可以在项目级别关闭通知,而无需考虑单个用户的设置。
如果关闭组级别通知,它将影响父组中的所有子组和项目。


从Bitbucket Server导入时,按名称过滤项目


核心,入门,高级,终极,免费,古铜,银,金


将现有项目从Bitbucket Server导入到GitLab应该很简单。 但是,如果有成千上万个这样的项目,那么选择Bitbucket存储库将使您很痛苦。


在版本12.2中,我们简化了这些迁移,并在Bitbucket Server导入页面上显示了一个筛选器,您可以在其中指定要导入的存储库的名称。 我们很高兴在以后的版本中将此过滤器添加到项目的所有导入器中。



锁定文件,不允许在同一主机上运行程序的多个实例


核心,入门,高级,终极,免费,古铜,银,金


在同一主机上运行gitlab-runner的多个实例会导致混乱并使调试复杂化。 事实并非如此,因此我们提供了一个锁定文件,可以防止发生此随机事件。


自动测试分离的改进示例


核心,入门,高级,终极,免费,古铜,银,金


我们已经有了parallel关键字,您可以使用它来控制和灵活配置并行测试(或完全并行执行任何任务),但是开发人员必须进行大量配置,有时会简单地复制分离逻辑。 有开源解决方案,例如Test Boosters ,它可以改进此过程并将测试配置拆分为多个文件,从而使设置的这一部分自动化。 我们更新了parallel关键字的文档,以使过程更加明显并提高管道效率。


改进了@和:字符的变量掩码


核心,入门,高级,终极,免费,古铜,银,金


我们在屏蔽变量中增加了对两个额外字符的支持,现在,GitLab可以自动隐藏比现在更多的不同机密。


在外部Prometheus实例的警报中使用GFM的任务的快捷方式和注释


终极金


如果您有一个在GitLab之外管理的Prometheus实例,我们将简化事件的排序和分配。 我们在gitlab寻找警报的地方添加了gitlab_incident_markdown字段。 它显示在“ 摘要”部分中的事件上方。 可以在AlertManager中将GFM( GitLab风味Markdown )添加到警报配置文件中,并用于自动分配和标记由警报打开的任务。


Prometheus事件警报打开的任务的快捷方式


终极金


如果您将项目设置为打开Prometheus警报任务,则incident快捷方式将自动应用。 因此,现在事件响应团队将能够轻松地在任务板上对它们进行排序,并且他们将不必基于事件和其他类型的任务手动标记任务。


任务中的Prometheus内置指标


CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD


, . , , , . , , . , , , , .


, . , URL. URL , .


, . , , .



API


STARTER, PREMIUM, ULTIMATE


GitLab. GitLab.com note , . , , . API , .


CSV- Prometheus


CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD


GitLab . , , , . GitLab CSV-, . CSV-.




ULTIMATE, GOLD


, . , .


, , , .



GitLab Runner 12.2


CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD


GitLab Runner 12.2! GitLab Runner — , CI/CD GitLab.


:



GitLab Runner: CHANGELOG .


GitLab


CORE, STARTER, PREMIUM, ULTIMATE


GitLab:


  • — Kubernetes 1.11.
  • networkproxy registry .
  • gitlab-shell .
  • Postgres gitlab-migrations .

Omnibus


CORE, STARTER, PREMIUM, ULTIMATE


  • GitLab 12.2 Mattermost 5.13Slack , , DevOps .
  • GitLab 12.2 Unicorn , . CPUs + 1 int(CPUs * 1.5 +1) .
  • GitLab 12.2 Debian Buster .
  • nginx 1.16.1, TLS v1.3 ECDSA .
  • postgresql 9.6.14 10.9.
  • gitlab-monitor 4.2.0, graphicsmagick — 1.3.33.
  • , Redis KEYS . .
  • JavaScript XSS-. .


CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD


GitLab GitLab .


GitLab 12.2:




Kubernetes


Kubernetes 12.2. , GitLab 11.11.


: 22 2019 .


Internal () GitLab.com , .


Internal , . , , innersource .


GitLab.com . Internal, Internal Public ( ) .


30 , (Public) (Private). Internal Private . .


: 30 2019 .


Ruby 2.6


GitLab 12.2 Ruby 2.6. Omnibus GitLab GitLab Chart Ruby 2.6.3, Ruby 2.5 .


: 22 2019 .


GitLab 12.2


, Grafana, Grafana , GitLab SSO .
cookie Rails , . cookie . 12.2 , , .
GitLab 12.0 GitLab 12.1, GitLab 12.2 PostgreSQL 10.7 .
PostreSQL 10.7, /etc/gitlab/disable-postgresql-upgrade .



:




GitLab, GitLab .



.

Source: https://habr.com/ru/post/zh-CN465627/


All Articles