自动化打包选择分支脚本

简介: 自动化打包选择分支脚本

我们的项目是用uni-app开发的,有一个主分支,不同的项目经理可以在打包平台填写配置项,使用的是一套代码,根据不同的配置项自动化打包出符合他们要求的项目。随着开发的功能越来越多,有一些项目需要单独为他们开发一些定制化的功能。开发时会单独切出来一个分支,但是自动化打包用的是主分支,那么这些定制化的项目就只能手动打包,或者先把定制化的代码合到主分支再恢复,很麻烦。这时就需要实现自动化打包时选择分支的功能了,项目经理只需要在打包平台选择了对应项目的分支,就会自动打出相应的定制化功能的包。

1.在打包平台新增选择打包分支的配置项


image.png

2.获取配置项的接口里新增打包分支字段

假设新增的打包分支字段名为packBranch,填写的分支名字为newItem,则接口返回的字段为packBranch:"newItem"

3.修改打包脚本,主要修改下载配置项这一部分的shell脚本,这里为了查看方便我省略了其他的返回参数。

修改之后的部分脚本:

stage('下载配置项'){
            steps {
                script{
                    echo  "获取配置项地址: ${params.CONFIG_BASE_URL}"
                    def config_base_url="${params.CONFIG_BASE_URL}"
                    //获取配置项
                    def system_config = sh returnStdout: true,script: /curl -m 20 -k --connect-timeout 10 "${config_base_url}"/
                    echo  "获取配置内容: ${system_config}"
                    //配置项转义
                    def res = getResult(system_config)
                    //环境变量存储
                    env.ENV_SYSTEM_CONFIG = system_config
                    env.PACK_BRANCH = "${res[0]}"
                    echo config_base_url
                    env.PACK_BRANCH
                    withEnv(["CONFIG_BASE_URL=${config_base_url}","ENV_SYSTEM_CONFIG=${env.ENV_SYSTEM_CONFIG}"]) {
                             def branch = "${env.PACK_BRANCH}"
                             echo "拉取${branch}上的代码"
                             def rev="${params.GIT_COMMIT}"
                             def scm = devgit(rev)
                             env.GIT_COMMIT=scm.GIT_COMMIT
                             echo "git cmt:${scm.GIT_COMMIT}"
                             def msg = getChanges()
                             echo "git log msg:${msg}"
         }

//转对象 json字符串转对象
def getResult(rawRest){
    def jsonSlpuer = new groovy.json.JsonSlurper()
    def obj= jsonSlpuer.parseText(rawRest)
    return ["${obj.data.packBranch}"]
}

//切分支 拉代码
def devgit(rev){
    def branch = "${env.PACK_BRANCH}"
    def res =  checkout changelog: true, poll: true, scm: [$class: 'GitSCM', branches: [[name: "*/${branch}"]], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'ChangelogToBranch', options: [compareRemote: "${rev}^{", compareTarget: '}']], [$class: 'CleanBeforeCheckout', deleteUntrackedNestedRepositories: true]], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'xxx', url: 'xxx']]]
    return res
}

4.在打包平台填写分支名字,保存之后自动化打包,打包成功之后就可以看到新打出的包用的是所填分支的代码。

目录
相关文章
|
19天前
|
Linux Shell Perl
自动化脚本之Debian 开机时运行通过expect自动执行串口命令
自动化脚本之Debian 开机时运行通过expect自动执行串口命令
16 0
|
2月前
|
jenkins 持续交付
Jenkins自动化部署脚本
Jenkins自动化部署脚本
35 0
|
19天前
|
安全 Linux Android开发
自动化脚本之文件搜索显示
自动化脚本之文件搜索显示
16 0
|
4天前
|
JSON 监控 测试技术
Groovy脚本编写员工上网行为监控自动化测试
本文介绍了如何使用Groovy脚本创建一个自动化工具来监控员工的网络活动。通过编写简单脚本记录员工访问的网站并打印信息,可进一步扩展为将数据保存至数据库。此外,通过设定定时任务,实现了每30分钟自动监控一次的功能。最后,展示了如何将监控数据转换为JSON格式并使用HTTP POST请求提交到网站,以实现数据的自动化上报,有助于企业保障网络安全、保护数据并提升工作效率。
41 5
|
5天前
|
SQL 关系型数据库 MySQL
【简单无脑】自动化脚本一键安装虚拟机下的MySQL服务
该文章提供了在虚拟机上安装MySQL服务的简化方法,特别是针对新手。作者提供了一个自动化脚本`install_mysql.sh`,使得安装过程更简单。用户需要下载`install.rpm`资源,将其放在指定目录下,然后创建并编辑脚本文件,将提供的代码粘贴进去,通过`chmod u+x`授权,最后运行脚本`./install_mysql.sh [rpm文件路径]`来安装MySQL。文章还附有相关图片说明。
15 1
【简单无脑】自动化脚本一键安装虚拟机下的MySQL服务
|
5天前
|
SQL 缓存 关系型数据库
MySQL常见问题解决和自动化安装脚本
这篇内容包含了两个主要部分:解决MySQL登录问题和处理GPG密钥问题。当MySQL密码正确但无法登录时,可以通过执行SQL命令`ALTER USER`和`flush privileges`来修改和重置密码。对于MySQL安装时的GPG密钥错误,首先需要强制删除旧的MySQL仓库包,导入新的GPG公钥,然后安装MySQL服务器。如果遇到GPG检查错误,可以使用`--nogpgcheck`参数忽略检查来安装。最后,提供了一个自动化安装MySQL的脚本,用于检查旧版本、卸载残留、安装MySQL8并启动服务。
22 1
MySQL常见问题解决和自动化安装脚本
|
11天前
|
弹性计算 运维 Shell
|
11天前
|
存储 弹性计算 运维
自动化收集员工信息的Shell脚本
【4月更文挑战第30天】
10 0
|
12天前
|
机器学习/深度学习 人工智能 供应链
【专栏】阿里云RPA的Rap程序是自动化流程脚本,基于AI和机器学习,实现业务流程自动化
【4月更文挑战第29天】阿里云RPA的Rap程序是自动化流程脚本,基于AI和机器学习,实现业务流程自动化。具有灵活性、易用性、高效稳定和智能学习等特点。广泛应用于财务、人力资源、客服和供应链等领域,未来将与AI深度融合,跨平台应用,行业定制化,并构建完善生态,助力企业效率提升和创新。
|
13天前
|
网络协议 安全
【专栏】`curl`是广泛用于网络编程和自动化脚本的命令行工具,支持HTTP、HTTPS等协议
【4月更文挑战第28天】`curl`是广泛用于网络编程和自动化脚本的命令行工具,支持HTTP、HTTPS等协议。在处理大文件或慢速服务器时,设置超时参数至关重要。本文介绍了`curl`的超时参数,如`-m`(最大操作时间)、`-c`(连接超时)、`--dns-timeout`(DNS解析超时)和`-t`(时间条件)。通过示例展示了如何设置这些超时,并提到了一些高级技巧和注意事项,如错误处理和带宽限制。合理设置超时能提高效率和可靠性,对编写健壮的自动化脚本非常有用。

热门文章

最新文章