伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

GitLab最佳实践 -- CI / CD之Pipeline(一)

来源:本站原创 浏览:105次 时间:2022-07-24

从《GitLab最佳实践 -- CI / CD之Hello World》的例子中我们知道 .gitlab-ci.yml文件定义了Pipeline的结构和顺序。GitLab Runner根据Pipeline的结构和顺序执行任务。接下来我们看下面一个例子。

stages: - build - test - deploybuild:  stage: build  script:    - echo "build job"  tags:    - dockertest1:  stage: test  script:    - echo "test1 job"  tags:    - dockertest2:  stage: test  script:    - echo "test2 job"  tags:    - dockerdeply:  stage: deploy  script:    - echo "deploy job"  tags:    - docker
stages(阶段)

保留关键字,定义了Pipeline的全部阶段。同一阶段内的任务并行执行。全部执行成功后开始下一阶段任务。任何阶段内任意任务执行失败都会导致Pipeline失败。所有阶段内的任务都执行成功后Pipeline才会显示passed。否则显示failed。如果未定义stages,则默认有build、test、deploy三个阶段,如果未定义stage,则默认test阶段。

上述例子我们定义了标准的三个阶段:build, test, deploy。它们的执行顺序为:build => test => deploy。接着我们定义了每个阶段相应的任务。其中test阶段定义了两个任务test1和test2。那么它们将并行执行。

jobs (任务)

任务名字必须是唯一的。可以自定义,但是不能使用保留关键字。如:

  • stages
  • stage
  • script
  • tags
  • before_script
  • after_script
  • variables
  • cache
  • image
stage (阶段)

任务的stage属性值(可选),必须是全局stages定义的值。该属性值决定该任务的执行顺序。如果未定义该属性。默认为test。这里我们回看一下Hello World的例子。

demo_job_1:  tags:    - ci  script:    - echo "Hello World"

script (脚本)

script是任务里面唯一必须的属性关键字。这里编写了Gitlab Runner执行的shell命令。

job:  script: echo "This is test job"

如果需要执行多行命令:

job:  script:     - echo "This is the first command"    - echo "This is the second command"    - ...

注意:有时script命令将需要用单引号或双引号引起来。例如,包含冒号(:)的命令需要用引号引起来,以便YAML解析器知道将整个内容解释为字符串而不是“键:值”对。特殊字符包括( :,{,},[,],,,&,*,#,?,|,-,<,>,=,!,%,@, ),还有空格。

如果任何脚本命令返回的退出代码都不为零,则该作业将失败,并且其他命令将不再执行。通过将退出代码存储在变量中,可以避免此行为:

job:  script:    - false && true; exit_code=$?    - if [ $exit_code -ne 0 ]; then echo "Previous command failed"; fi;
tags (标签)

tags 定义了允许执行该任务的GitLab Runner。上述例子中 tags:docker。则会从所有注册的Runner列表中找到标签页定义为docker的Runner来执行脚本。

Please enter the gitlab-ci tags for this runner (comma separated):dockerRegistering runner... succeeded                     runner=Hk2ao24y

tags也可以指定多个标签。例如我们希望job运行在 linux和docker两个标签的Runner执行。

job:  tags:    - linux    - docker

以上,包括了GitLab CI/CD Pipeline的基本结构和流程。关于更多Pipeline的用法,我们将在接下来的文章中继续分享。

如果您喜欢这篇文章,请考虑关注我。

长沙DevOps联盟 - 关注容器技术,K8S,自动化部署,基础设施架构。

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net