GitLab CI/CD 之 pipelibe-for-MultiProject-传参案例

首先我们先将构建和部署分离开来,然后通过oneci中一次完成多个项目的biuld操作,待所有项目build的结束后,在oneci的最后一个阶段,去触发部署操作。后期可以通过判断条件的方式,设置卡点,从而做从流程审批到发布生产。

项目信息:

在这里插入图片描述

项目说明:

流程思路:
在这里插入图片描述

CI file:

oneci ci file:

image: docker:19.03.13
variables:
  CITOKEN: b7d501ee8b04248b12a84e66bc14c6
  REF_NAME: main
  VERSION: v10086

stages:
  - level 0
  - level 1
  - level 2
  - level 3
  - chufa  #触发helmfile项目

depoly-level-0:
  stage: level 0
  trigger: 
    project: ops/http
    branch: main
    strategy: depend

depoly-level-1:
  stage: level 1
  trigger: 
    project: ops/nginx
    branch: main
    strategy: depend

depoly-level-2:
  stage: level 1
  trigger: 
    project: ops/tomcat
    branch: main
    strategy: depend

depoly-level-3:
  stage: level 2
  trigger: 
    project: ops/mysql
    branch: main
    strategy: depend

depoly-level-4:
  stage: level 3
  trigger: 
    project: ops/apache
    branch: main
    strategy: depend
    
deploy-chufa:
  stage: chufa
  image: centos:7
  tags:
    - test
  script:
    - "curl -X POST -F token=${CITOKEN} -F ref=${REF_NAME} -F variables[version]=${VERSION} http://192.168.137.14/api/v4/projects/8/trigger/pipeline"
    - echo "Compile complete."
    - sleep 1
http ci file:(其他项目类同)
image: docker:19.03.13
variables:
  VERSION: v120
stages:
  - Test
  - Build
  - Deploy

test:
  stage: Test
  tags:
    - test
  script:
    - docker info

build-http:
  stage: Build
  tags:
    - test
  script:
    - docker build -t 192.168.137.14:5000/http:${VERSION} -f Dockerfile .
    - docker push 192.168.137.14:5000/http:${VERSION}

helmfile ci file:

stages:
  - Modify
  - Deploy

modifyDev:
  image: 192.168.137.14:5000/centos:env
  stage: Modify
  tags:
    - test
  only:
    - main
  script:
    - cd helmfile
    - echo ${version}
    - envsubst < kikitrade-dev-green.tmp > kikitrade-dev-green.yaml
  artifacts:
    paths: 
      - helmfile

deployDev:
  image: 192.168.137.14:5000/helmfile:kktd-beta
  stage: Deploy
  tags:
    - test
  only:
    - main
  script: 
    - cd helmfile
    - echo ${version}
    - helmfile -v
    - cat  kikitrade-dev-green.yaml

效果展示:

oneci 流水线
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
helmfile流水线

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

可以发现,有个http的项目的镜像版本并不是我们期望的v120,是因为http项目中使用的VERSION并不是version环境,同时通过在oneci中传入的参数给覆盖了,所以因此也得出一个结论就是传入的参数的优先级会大于ci文件中预定义的参数值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值