gitlab cicd

本文详细介绍了GitLab-CI/CD的初步理解,重点讲解了.gitlab-ci.yml文件的编写,包括基本和常用关键词如script、before_script、after_script、artifacts、stages、when、tags、image等的用法。还涵盖了变量注入、pipeline的类型和触发方式、最佳实践和实例。通过本文,读者可以掌握如何构建和优化GitLab的持续集成与持续部署流程。
摘要由CSDN通过智能技术生成

Gitlab-CI/CD preliminary understanding

.gitlab-ci.yml的编写

在项目的根目录中创建一个叫做.gitlab-ci.yml的文件,gitlab会自动找到他并且在pipeline运行的时候运行这些步骤

官方提供的关键词 —> https://docs.gitlab.com/ee/ci/yaml/index.html#yexcept-basic

基本的28个关键词

代码格式:

    script before_script after_script allow_failure artifacts cache coverage dependencies enivronment except extends image include interruptible only page parllel release resource_group retry rules services stage tags timeout trigger variables when

最常用的15个关键词

  • script、before_script、after_script

    这里定义了要执行的shell脚本内容,内容将会被runner执行,请注意,默认的工作目录是项目的根目录,也就是这里可以直接npm install 或者chmod +x gradlew && ./gradlew clean build

    每个job都必须至少有一个script(在自己的trigger中有script或者extend中有script也可以)

    在这里,可以像在ununtu中写指令一样

    注意 :每一个“-”都会在项目的根目录执行,而使用“- |”就可以继承目录

job:
  script:
    - npm install
    - tail DISMService/build/jacocoHtml/index.html

    当然,我们也可以写成下面的格式

job:
  script:
    - |
      npm install
      tail DISMService/build/jacocoHtml/index.html

    before_script、after_script的用法是一样的

  • artifacts

    这个关键词的作用是将pipeline中的一些文件、文件夹进行打包压缩,可以让别人进行下载,并且还能再后续的job中当作缓存

    基本使用:

build:
  script:
    - npm run build
  artifacts:
    paths:
      - dist/*

    path 是用来指定文件目录,也可以使用exclude关键词来将目录、文件排除,支持正则表达式

    可用的属性

    - paths:文件路径,支持正则表达式

    - exclude:排除的文件,支持正则表达式

    - name:这个artifacts的名字

    - expose_as:在UI界面导出的名称

    - untracked(boolean):是否将git忽略的文件加到artifacts中

    - when: on_success; onfailure; always:什么时候上传artifacts

    - expire_in:过期时间(默认30天)

    - reports:收集测试报告

build:
  script:
    - npm run build
  artifacts:
    paths:
      - dist/*
    exclude:
      - binaries/**/*.o
    expose_as: 'artifacts 1'
    name: "$CI_COMMIT_REF_NAME"
    untracked: false
    expire_in: 2 h 20 min
    when: on_failure

    

  • stages

    定义pipeline的各个阶段,默认是有.pre build test deploy .post ,用于归档一部分的job,按照定义的stage顺序来执行

    只有第一个stage中的所有job执行完成之后,下一个stage中的job才会执行

    下面的代码中,执行顺序就是job1—>job0,因为build在test之前

stages:
  - build
  - test

job0:
  stage: test
  script: echo "test"

job1:
  stage: build
  script: echo "build"

    

  • when

    可以在发生error或者全部成功的时候可以运行的job,比如要在job失败后触发另一个job,或者需要手动执行job

    可用的属性:

    - on_success:所有job执行成功后

    - on_failure:当

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值