服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - 编程技术 - GitLab13.8版本CI/CD部分功能更新

GitLab13.8版本CI/CD部分功能更新

2021-02-22 23:14DevOps云学堂泽阳 编程技术

GitLab13.8版本CI/CD部分功能更新,本篇带大家一起体验一下。

基于GitLabCI/CD流水线实践

GitLab13.8版本CI/CD部分功能更新

Gitlab版本升级GitLab12.9 >12.10.14 > 13.0.0 >13.8.4

https://docs.gitlab.com/omnibus/update/gitlab_13_changes.html

https://forum.gitlab.com/t/omnibus-upgrade-from-12-10-6-to-13-0-6/38737/3

https://forum.gitlab.com/t/packaged-postgresql-error-after-update-from-12-7-to-13/39451

unning handlers: 

Running handlers complete 

Chef Infra Client finished, 441/1538 resources updated in 03 minutes 19 seconds 

gitlab Reconfigured! 

Checking for an omnibus managed postgresql: OK 

Checking if postgresql['version'is set: OK 

Checking if we already upgraded: NOT OK 

Checking for a newer version of PostgreSQL to install 

Upgrading PostgreSQL to 12.5 

Checking if PostgreSQL bin files are symlinked to the expected location: OK 

cp /opt/gitlab/embedded/service/gitlab-rails/public/deploy.html /opt/gitlab/embedded/service/gitlab-rails/public/index.html 

Toggling deploy page: OK 

Toggling services:ok: down: alertmanager: 1s, normally up 

ok: down: gitaly: 1s, normally up 

ok: down: gitlab-exporter: 0s, normally up 

ok: down: gitlab-pages: 1s, normally up 

ok: down: grafana: 0s, normally up 

ok: down: logrotate: 0s, normally up 

ok: down: postgres-exporter: 1s, normally up 

ok: down: prometheus: 0s, normally up 

ok: down: redis-exporter: 1s, normally up 

ok: down: sidekiq: 1s, normally up 

ok: down: sshd: 0s, normally up 

Toggling services: OK 

Running stop on postgresql:ok: down: postgresql: 0s, normally up 

Running stop on postgresql: OK 

Symlink correct version of binaries: OK 

Creating temporary data directory: OK 

Initializing the new database: OK 

13.8新特性(CI/CD)

使用退出码控制作业的状态

语句:allow_failure:exit_codes

使用allow_failure:exit_codes动态控制作业是否应该允许失败。您可以列出哪些退出代码不被视为失败。该作业因任何其他退出代码而失败。

test_job_1: 

  script: 

    - echo "Run a script that results in exit code 1. This job fails." 

    - exit 1 

  allow_failure: 

    exit_codes: 137 

 

test_job_2: 

  script: 

    - echo "Run a script that results in exit code 137. This job is allowed to fail." 

    - exit 137 

  allow_failure: 

    exit_codes: 

      - 137 

      - 255 

参考链接:https://docs.gitlab.com/ee/ci/yaml/README.html#allow_failureexit_codes

管道规则支持定义变量

语句:rules:variables, (13.7引入, 13.8默认启用)

可以在rules:使用variables定义特定条件的变量。

job: 

  variables: 

    DEPLOY_VARIABLE: "default-deploy" 

  rules: 

    - if: $CI_COMMIT_REF_NAME =~ /master/ 

      variables:                              # Override DEPLOY_VARIABLE defined 

        DEPLOY_VARIABLE: "deploy-production"  # at the job level

    - if: $CI_COMMIT_REF_NAME =~ /feature/ 

      variables: 

        IS_A_FEATURE: "true"                  # Define a new variable. 

  script: 

    - echo "Run script with $DEPLOY_VARIABLE as an argument" 

    - echo "Run another script if $IS_A_FEATURE exists" 

参考链接:https://docs.gitlab.com/ee/ci/yaml/README.html#allow_failureexit_codes

Docker类型的执行器配置多个镜像拉取策略

该pull_policy参数允许您指定拉取策略列表。将按照从左到右的顺序尝试列表中的策略,直到成功进行拉取或列表用尽为止。

什么时候使用多个拉策略?

当Docker注册表不可用并且您需要提高作业弹性时,此功能很有用。如果您使用该always策略并且注册表不可用,则即使所需的镜像在本地缓存,该作业也会失败。

为了克服该问题,您可以添加在故障情况下执行的其他后备拉取策略。通过添加第二个拉取策略值if-not-present,Runner可以找到任何本地缓存的Docker镜像层。

[runners.docker] 

  pull_policy = ["always""if-not-present"

项目配置是否存储最新工件

默认情况下,永远不会删除来自最近成功作业的最新工件。如果使用expire_in来配置作业,则其工件仅在存在较新的工件时才过期。

保留最新的工件会在具有大量工作或较大工件的项目中使用大量存储空间。如果项目中不需要最新的工件,则可以禁用此行为以节省空间:

导航到设置> CI/CD>Artifact

取消选中“将工件保留在最近成功完成的工作中”

您可以在实例的CI/CD设置中对自管理实例上的所有项目禁用此行为 。

禁用该功能时,最新的工件不会立即过期。必须运行新的管道,最新的工件才能到期并删除。

GitLab13.8版本CI/CD部分功能更新

不重复使用分支和合并

13.8 新增了两个预定义变量,可以通过变量来控制CI管道。

CI_PROJECT_CONFIG_PATH 指定项目的CI配置文件路径。

CI_OPEN_MERGE_REQUESTS 在分支和合并请求管道中可用。一个逗号分隔的列表,该列表包含最多四个使用当前分支和项目作为合并请求源的合并请求。例如: gitlab-org/gitlab!333,gitlab-org/gitlab-foss!11。

管道配置可视化

要查看gitlab-ci.yml配置的可视化,请在项目中转到CI / CD>编辑器,然后选择“**可视化”**选项卡。可视化显示了所有阶段和作业。任何needs 关系都显示为将作业连接在一起的线,显示了执行的层次结构:

GitLab13.8版本CI/CD部分功能更新

将鼠标悬停在工作上以突出其needs关系:

GitLab13.8版本CI/CD部分功能更新

如果配置没有任何needs关系,则不会画线,因为每个作业仅取决于成功完成的前一阶段。

启用或禁用管道编辑器:

Feature.disable(:ci_pipeline_editor_page) 

Feature.enable(:ci_pipeline_editor_page) 

原文地址:https://mp.weixin.qq.com/s/wWsfcx-lMtoyGC1zi8SRMg

延伸 · 阅读

精彩推荐
  • 编程技术AIOps,SRE工程师手中的利器

    AIOps,SRE工程师手中的利器

    AIOps开始成为一种极为重要的站点可靠性工程工具。它能够高效吸纳观察数据、参与数据以及来自第三方工具的数据,判断系统运行状态并保证其处于最佳...

    至顶网5972021-03-08
  • 编程技术简单、好懂的Svelte实现原理

    简单、好懂的Svelte实现原理

    本文会围绕一张流程图和两个Demo讲解,正确的食用方式是用电脑打开本文,跟着流程图、Demo一边看、一边敲、一边学...

    魔术师卡颂4822021-11-10
  • 编程技术真正聪明的程序员,总有办法不加班

    真正聪明的程序员,总有办法不加班

    工作效率提升了,就可以少加班了,聪明的程序员,总会有一堆可以提升编码效率的工具?当一种工具满足不了工作需求,就去探索新的,今天纬小创就给...

    今日头条12482021-03-04
  • 编程技术让开发效率倍增的 VS Code 插件

    让开发效率倍增的 VS Code 插件

    今天来分享一些提升开发效率的实用 VS Code 插件!Better Comments 扩展可以帮助我们在代码中创建更人性化的注释,有不同形式和颜色的注释供我们选择。 ...

    前端充电宝7132022-04-21
  • 编程技术Delphi - Indy idMessage和idSMTP实现邮件的发送

    Delphi - Indy idMessage和idSMTP实现邮件的发送

    这篇文章主要介绍了Delphi - Indy idMessage和idSMTP实现邮件的发送,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...

    JJ_JeremyWu6592020-09-22
  • 编程技术从Context源码实现谈React性能优化

    从Context源码实现谈React性能优化

    这篇文章主要介绍Context的实现原理,源码层面掌握React组件的render时机,从而写出高性能的React组件,源码层面了解shouldComponentUpdate、React.memo、PureComponen...

    魔术师卡颂5312020-12-20
  • 编程技术2021年值得关注的React PDF 库

    2021年值得关注的React PDF 库

    今天,许多网络应用程序为其用户提供内置的PDF浏览选项。然而,选择一个并不容易,因为它们的功能远远超过显示PDF。在这篇文章中,我将评估5个React的...

    TianTianUp5232021-06-21
  • 编程技术用户态 Tcpdump 如何实现抓到内核网络包的?

    用户态 Tcpdump 如何实现抓到内核网络包的?

    在网络包的发送和接收过程中,绝大部分的工作都是在内核态完成的。那么问题来了,我们常用的运行在用户态的程序 tcpdump 是那如何实现抓到内核态的包...

    开发内功修炼11612021-09-08