jenkins构建后的后续优化

AI 驱动代码审查实战

Claude code-review 插件深度解析,把 AI 智能审查接进 CI/CD 流水线

权限管理

Role Strategy插件,此插件适用于jenkins 2.346.3版本,是在https://plugins.jenkins.io/下载的插件

安装完插件重启,在系统管理里就可以可到这个选项了

全局安全配置,授权策略选择role-based-strategy,保存即可

配置管理角色

1.先创建一个角色test_role(空白处填写后add提交),勾选全部read选项(此处不勾选,普通用户登录界面会报错)

2.创建了一个测试组,正则匹配所有包含uat的项目

创建普通用户jenkins_test

返回分配角色,将普通用户添加到策略组内

保存即可。使用普通用户登录,只可以看到uat关键字相关的项目,并且只有构建权限,没有任务的配置权限

钉钉告警

dingtalk插件,装完重启

钉钉群内新建机器人

群聊设置添加机器人

添加自定义机器人


 

选项加密,同意即可,随即弹出webhook地址(加密信息和webhook地址需要用到)

系统配置添加钉钉的webhook

完成后在项目里添加钉钉通知

构建任务即可触发

maven多项目构建

maven构建时,会下载依赖包,当下次构建的时候会使用本地的依赖包进行构建

多个项目怕依赖冲突或者是想分开管理,可参考如下方法

首先,默认settings.xml文件在如下位置,此文件在maven工作目录下的conf目录

cp一个例如settings-api.xml文件,修改localRepository选项,设置一个新的目录(目录需要新建)

maven构建的时候添加如下参数:

--settings /data/soft/maven3.6.3/apache-maven-3.6.3/conf/settings-api.xml clean install -Dmaven.test.skip=true

--settings参数值得是构建的时候指定此文件作为依赖下载,此文件指向了一个新的目录,这样就可以避免多个项目共用一个maven本地源

构建任务布尔值参数选择

#!/bin/bash

echo "---------------------------------------"
echo "BUILD_COMMON的值为:$BUILD_COMMON"
echo "BUILD_MAPPER的值为:$BUILD_MAPPER"
echo "BUILD_THIRDPARTY_PAY的值为:$BUILD_THIRDPARTY_PAY"
echo "---------------------------------------"

PROJECT_LIST=""

if [ "$BUILD_COMMON" = "true" ]; then
    echo "选择项目:baoan-common"
    if [ -z "$PROJECT_LIST" ]; then
        PROJECT_LIST="baoan-common"
    else
        PROJECT_LIST="$PROJECT_LIST baoan-common"
    fi
else
    echo "跳过 baoan-common 构建"
fi

if [ "$BUILD_MAPPER" = "true" ]; then
    echo "选择项目:baoan-v2-mapper"
    if [ -z "$PROJECT_LIST" ]; then
        PROJECT_LIST="baoan-v2-mapper"
    else
        PROJECT_LIST="$PROJECT_LIST baoan-v2-mapper"
    fi
else
    echo "跳过 baoan-v2-mapper 构建"
fi

if [ "$BUILD_THIRDPARTY_PAY" = "true" ]; then
    echo "选择项目:thirdparty-pay-service"
    if [ -z "$PROJECT_LIST" ]; then
        PROJECT_LIST="thirdparty-pay-service"
    else
        PROJECT_LIST="$PROJECT_LIST thirdparty-pay-service"
    fi
else
    echo "跳过 thirdparty-pay-service 构建"
fi

echo "最终的项目列表: $PROJECT_LIST"

JENKINS_WORKSPACE="/root/.jenkins/workspace/baoan-common--v2-sdk"

# 遍历每个选中的项目
for PROJECT_NAME in $PROJECT_LIST; do
    PROJECT_DIR="$JENKINS_WORKSPACE/$PROJECT_NAME"
    echo "开始构建项目: $PROJECT_NAME, 路径: $PROJECT_DIR"

    # 检查目录是否存在
    if [ ! -d "$PROJECT_DIR" ]; then
        echo "错误:目录 $PROJECT_DIR 不存在"
        exit 1
    fi

    # 进入目录并构建
    cd "$PROJECT_DIR"
    /data/soft/maven3.6.3/apache-maven-3.6.3/bin/mvn -f pom.xml --settings /data/soft/maven3.6.3/apache-maven-3.6.3/conf/settings_baoan_uat.xml clean deploy -Dmaven.test.skip=true
done
# 检查构建结果
if [ $? -eq 0 ]; then
    echo "项目 $PROJECT_NAME 构建成功"
else
    echo "项目 $PROJECT_NAME 构建失败"
    exit 1
fi

jenkins灰度发布示例

方式1:nginx权重是一种方式,通过设置权重来控制流量的转入

方式2:jenkins的灰度发布

构建参数设置发布的机器范围

测试脚本内容:

#!/bin/bash



HOST=$1
if [[ $HOST == "GROUP1" ]];then
  HOST_LIST="192.168.1.1"
elif [[ $HOST == "GROUP2" ]];then
  HOST_LIST="192.168.1.1 192.168.1.2"
elif [[ $HOST == "GROUP3" ]];then
  HOST_LIST="192.168.1.1 192.168.1.2 192.168.1.3"
fi


echo ${HOST_LIST}

for server_ip in ${HOST_LIST};do
  echo "${server_ip}--->"
done

 build构建的时候通过选择参数来指定升级的服务器范围

这里选择了GROUP3

这样通过选择group3获取到了全部机器,后续利用ssh和scp等命令拷贝,替换,执行等操作即可

AI 驱动代码审查实战

Claude code-review 插件深度解析,把 AI 智能审查接进 CI/CD 流水线

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值