Gitlab中Pipeline语法一

文章详细介绍了GitlabCI/CD管道的配置结构,包括job、script、before_script、after_script、stages和stage等关键元素的作用。job是独立执行的任务,script定义了作业中的命令,before_script和after_script分别在作业前后运行。stages定义了作业执行的阶段,同一阶段作业并行,不同阶段顺序执行。此外,还提到了variables用于定义变量,以及如何处理流水线阻塞的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Pipeline语法

job/script/before_script/after_script/stages/stage/variables

job

每个项目使用.gitlab-ci.yml文件配置GitlabCI/CD管道,文件中可以定义一个或多个作业(job),每个作业必须具有唯一的名称(不能使用关键字),每个作业都是独立执行的,每个作业至少包含一个script

job1:
  script: "execute-script-job1"
job2:
  script: "execute-script-job2"

script

每个作业至少包含一个script,有时script命令需要使用单引号或双引号引起来,例如,包含(:)需要加引号,以便

job:
  script:
    - uname -a
    - bundle exec rspec

before_script

用于定义一个命令,该命令在每个作业之前运行.必须是一个数组,指定的script与主脚本中指定的任何脚本串联在一个shell中执行.
before_script失败会导致整个作业失败,其他作业将不再执行,作业失败不会影响after_script运行.

after_script

用于定义将每个作业(包括失败的作业)之后运行的命令.必须是数组.
指定的脚本在新的shell中执行.

stages

用于定义作业可以使用的阶段,并且是全局定义的.
同一阶段的作业并行运行,不同阶段的作业按顺序执行.

stages:
  - build
  - test
  - deploy

stage

依赖于全局定义的stages,允许将作业分为不同的阶段,并且同一stage作业可以并行执行

.pre 始终是整个管道的第一个运行阶段
.post始终是管道的最后一个运行阶段
用户定义的阶段都是在两者之间运行.
.pre和.post的顺序无法改变,若果管道中仅包含.pre和.post阶段的作业,则不会创建管道.

codescan:
  stage: .pre
  tags:
    - build
  only:
    - master
  script:
    - echo "codeoscan"

variables

定义变量,pipeline变量,job变量,job变量优先级最大.

示例

before_script:
  - echo "before_script!!!"

variables:
  DOMAIN: example.com

stages:
  - build
  - test
  - codescan
  - deploy

build:
  before_script:
    - echo "before_script in build job"
  stage: build
  script:
    - echo "mvn clean"
    - echo "mvn install"
    - echo "$DOMAIN"
  after_script:
    - echo "after_script in build job"
 
unittes:
  stage: test
  script:
    - echo "run test"

deploy:
  stage: deploy
  script:
    - echo "hello deploy"
    - sleep 2;

codescan:
  stage: codescan
  script:
    - echo "codescan"
    - sleep 5;
 
after_script:
  - echo "after_script"

在这里插入图片描述

问题

如果流水线一直处于等待阻塞的状态,需要到管理页面
在这里插入图片描述
点击图中runners 页面中某一个runner后面的编辑,选中如下图选项,运行无标记的作业
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值