Gitlab CI 多模块下如何只构建指定模块

原文链接

欢迎大家对于本站的访问 - AsterCasc

前言

在前文后端项目CICD流程构建以及项目CICD流程构建(续篇)我们处理了利用Gitlab进行项目构建再将构建完成的包传入服务器运行的流程。有小伙伴反馈,在这种当多模块的情况下,不能很方便地构建指定模块,这里我们给出修改示例,通过git commit message对构建模块进行指定

实现

直接上代码:

image: maven:3.8.5-openjdk-17  
stages:  
  - build  
  - release  
  
#打印版本号和tag信息  
before_script:  
  - export APPLICATION_VERSION=`mvn spring-boot:build-info | grep Building | awk '{print $4}'`  
  - echo ${APPLICATION_VERSION}  
  - export TAG=${CI_COMMIT_BRANCH}_${CI_COMMIT_SHA:0:8}_${APPLICATION_VERSION}  
  - echo ${TAG}  
  - echo ${CI_PROJECT_ID}  
  - echo ${CI_JOB_ID}  
  - echo ${CI_PROJECT_NAME}  
  - echo ${PROJECT_NAME}  
  
#构建jar包  
build_yui:  
  stage: build  
  rules:  
    - if: $CI_COMMIT_BRANCH == "release" && $CI_COMMIT_MESSAGE =~ /\[yui\]/  
  script:  
    - cd yui  
    # your build step
    - export PARAM_VAR="somthing"  
    - echo "PARAM_VAR=${PARAM_VAR}" >> build.env  
    - cat build.env  
  allow_failure: false  
  artifacts:  
    reports:  
      dotenv: yui/build.env  
    paths:  
      - yui/target/*.jar  
    expire_in: 1 week  
  
#deploy to  
release_yui:  
  stage: release  
  image: astercass/alpine-simple:latest  
  rules:  
    - if: $CI_COMMIT_BRANCH == "release" && $CI_COMMIT_MESSAGE =~ /\[yui\]/  
  script:  
    # your release step
  dependencies:  
    - build_yui  
  
build_kotomi:  
  stage: build  
  rules:  
    - if: $CI_COMMIT_BRANCH == "release" && $CI_COMMIT_MESSAGE =~ /\[kotomi\]/  
  script:  
    - cd kotomi  
    # your build step
    - export PARAM_VAR="somthing"  
    - echo "PARAM_VAR=${PARAM_VAR}" >> build.env  
    - cat build.env  
  allow_failure: false  
  artifacts:  
    reports:  
      dotenv: kotomi/build.env  
    paths:  
      - kotomi/target/*.jar  
    expire_in: 1 week  
  
#deploy to  
release_kotomi:  
  stage: release  
  image: astercass/alpine-simple:latest  
  rules:  
    - if: $CI_COMMIT_BRANCH == "release" && $CI_COMMIT_MESSAGE =~ /\[kotomi\]/  
  script:  
    # your release step
  dependencies:  
    - build_kotomi

这里我们有两个模块:kotomiyui,比如我们在某个分支上最后的提交记录包含[kotomi]则在合并到release的时候,就会执行build_kotomirelease_kotomiyui模块亦然,如果最后提交记录同时包含多个模块,则会触发多个模块的构建和发布

举个例子,比如当前分支为feature-supportUserCoinModel-20250101,测试回归完成后,我们将分支合并到mastergit checkout master && git pull && git merge feature-supportUserCoinModel-20250101 此时修改项目下更新日志文件,再进行提交:

echo "[yui] [kotomi] for support user coin model -- 20250201" >> release.log
git commit -am "build: [yui] [kotomi] for support user coin model"
git push 
git checkout release 
git merge master
git push 

此时位于Gitlab脚本就会被触发,执行yuikotomi的构建和发布工作

原文链接

欢迎大家对于本站的访问 - AsterCasc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值