记一次gitlab cicd部署多项目流水线流程

文章介绍了如何使用GitLabCI/CD在代码推送到prod分支时自动执行Maven打包和部署流程。B项目通过mvninstall更新本地仓库,A项目随后进行打包并发送到部署服务器。整个过程涉及gitlabrunner、流水线配置、分支策略以及artifact管理。
摘要由CSDN通过智能技术生成

参考文档

gitlab官方中文文档
GitLab CI/CD实现代码推送后自动maven打包发布

项目背景

  1. 项目A。A项目pom中依赖B的jar包
  2. 项目B
  3. 两个项目都仅限prod分支被合并代码时才触发流水线
  4. 两个项目都是maven项目

流程:
gitlab服务器 =>gitlab runner 打包服务器=>部署服务器

流水线触发后,在打包服务器内打包完成,然后再通过ssh命令(这里略过,读者自行搜索)发送至部署服务器并运行部署脚本

打包需求

gitlab runner 服务器内,B项目只需要mvn install更新服务器的本地仓,然后A项目package完发送到部署服务器

gitlab runner 服务器上需要配置的环境

maven

项目B的流水线配置

default:
  tags:
    - shell #此处为Runner的tag,可用于指定Runner

stages:
  - install

job_install:
  stage: install
  script:
    - echo "--开始mvn install 实体包--"
    - mvn clean install
    - echo "--完成--"
  only:
    - prod # 指定分支

项目A的流水线配置

default:
  tags:
    - shell #此处为Runner的tag,可用于指定Runner
stages:
  - install-b
  - package
  - deploy



install_b:
  stage: install-b
  trigger:
    project: my-group/project-b #填写你项目的 所在组和gitlab上的项目名。别写错了
    strategy: depend # 重点
    branch: prod  #重点 由于B的项目流水线设置了只在prod分支运行,所以这里必须指定


package_war:
  stage: package
  script:
    - echo "--开始mvn package --"
    - mvn clean package
    - echo "--完成--"
  artifacts:
    paths:
      - target/a.jar #设置制品,这样下面的部署流程可以引用
  only:
    - prod
deploy_service:
  stage: deploy
  script:
    - echo "--start deploy --"
    - echo $CI_COMMIT_TAG
    - echo "模拟部署"
    - echo "--完成--"
  only:
    - prod

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值