DevOps平台结合Gradle实现打包流水线

在现代软件开发中,持续集成与持续交付(CI/CD)已成为团队提速、降本增效的核心实践。Gradle作为强大的自动化构建工具,常被用于Android与Java项目的构建打包任务。而将Gradle集成进企业的DevOps平台中,不仅可以标准化构建过程,还能自动化打包、测试、发布的全流程,大幅提升效率。

本文将介绍如何将Gradle构建流程集成到DevOps平台中,构建一条高效、可靠的打包流水线。

以蓝鲸DevOps平台为例

在这里插入图片描述

这是构建流水线的执行图。

公共目录和配置

echo 'action time'
dateif [ -z "$branch" ]; thenecho '未选择git分支'exit 125
ficd /opt/sdk/build-tools/30.0.0
pwd
chmod 777 zipalign
chmod 777 apksignercd ${WORKSPACE}
pwdecho 'clean ./apk'
rm -rf apkecho 'create ./apk'
mkdir -p ./apkecho 'clean ./aab'
rm -rf aabecho 'create ./aab'
mkdir -p ./aabecho 'set local.properties'
echo 'sdk.dir=/opt/sdk' > local.propertiesls -al

分渠道打包配置

核心是给环境变量赋值:

set -ex
echo ${channel}if echo ${channel} | grep -q "官网"; thensetEnv "offical" "true"
elsesetEnv "offical" "false"
fiif echo ${channel} | grep -q "小米"; thensetEnv "xiaomi" "true"
elsesetEnv "xiaomi" "false"
fiecho "xiaomi: ${xiaomi}"if echo ${channel} | grep -q "华为"; thensetEnv "huawei" "true"
elsesetEnv "huawei" "false"
fiecho "huawei: ${huawei}"if echo ${channel} | grep -q "oppo"; thensetEnv "oppo" "true"
elsesetEnv "oppo" "false"
fiecho "oppo: ${oppo}"if echo ${channel} | grep -q "vivo"; thensetEnv "vivo" "true"
elsesetEnv "vivo" "false"
fiecho "vivo: ${vivo}"if echo ${channel} | grep 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/92211.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/92211.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Node.js 操作 MySQL

目录 一、什么是 MySQL? 二、MySQL 的功能概览 三、MySQL 的安装与启动 安装 MySQL 启动服务 四、Node.js 如何连接 MySQL? 使用 mysql2 模块(推荐) 建立连接 五、创建数据表和插入数据(SQL 初始化&#xff09…

解锁高效敏捷:2025年Scrum项目管理工具的核心应用解析

一、为什么Scrum团队需要专业项目管理工具?在敏捷开发实践中,Scrum框架虽然提供了基础的工作流程,但缺乏对任务细粒度管理的支持。传统白板或简单看板工具往往无法满足现代敏捷团队的需求,导致:冲刺规划混乱&#xff1…

途游大数据面试题及参考答案

Java 的反射机制是什么?主要应用在哪些场景? Java的反射机制是指程序在运行时,能够获取自身类的信息(如类名、属性、方法、构造器等),并动态操作这些信息的能力。正常情况下,Java代码编译时类型已确定,而反射打破了这种编译期约束,让程序在运行时灵活操作类和对象。 …

贪心+矩阵算法

贪心算法贪心的本质是:选择每一阶段的局部最优,从而达到全局最优做题的时候,只要想清楚 局部最优 是什么,如果推导出全局最优,其实就够了。买卖股票的最佳实际思路:如果第i天卖出股票,则最大利润…

STM32U5 周期性异常复位问题分析

关键字: Option Bytes, IDWG 1. 问题背景 客户反馈使用 NUCLEO_STM32U575 进行评估时,发现板子烧录完程序后,能看到指示程序运行的 LED 灯正常点亮,但是程序跑不起来。仔细观察 LED 指示灯,并不是常亮而是出现周期性…

RedisBloom使用

安装RedisBloom模块,从git获取对应的原码,make生成.so文件,挂载.so文件,启动redis docker run --name test-redis -v /iothub/test-redis/data:/data -v /iothub/test-redis/modules:/modules -p 6378:6379 -d redis:4.0.10 redis…

ADC、Flash、SPI、watchdog

ADCADC(Analog-to-Digital Converter), 即模拟信号 - 数字信号转换器在STM32F103C8T6中, 同样具有ADC功能.以我们的芯片为例, 也存在2个片上外设ADC, 即ADC1和ADC2, 这两个ADC片上外设都挂载在APB2总线上.我们的ADC片上外设, 是一种具有12位逐次逼近型ADC,ADC转换的本质是不断的…

冷库设备远程监控物联网+省电节能解决方案

随着生鲜电商、医药冷链、跨境物流等行业的爆发式增长,我国冷库容量激增,但传统冷库管理模式正面临严峻挑战。据统计,国内冷链运输损耗率高达12%-15%,其中因温度失控导致的货损占比超60%。在某医药企业冷库事故中,因制…

如何开发一个运行在windows系统服务器上的服务

第一步:vs2022创建一个windows服务项目第二步:从工具箱拖拽出一个timer第三步:按下图所示进入,开始编辑业务逻辑下面给个例子using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; …

本地组策略编辑器无法打开(gpedit.msc命令异常)

一、本地组策略编辑器打开方式1、直接搜索打开(1)在搜索栏中直接输入以下内容进行搜索本地组策略编辑器(2)搜索到后直接点击打开即可(但是一部分同志无法搜索到,搜索到的内容基本都是网页信息而非本地系统的…

kafka部署集群模式

Kafka部署(3.7) 生产环境推荐的kafka部署方式为operator方式部署,Strimzi是目前最主流的operator方案。集群数据量较小的话,可以采用NFS共享存储,数据量较大的话可使用local pv存储 部署operator operator部署方式为he…

C语言中级_动态内存分配、指针和常量、各种指针类型、指针和数组、函数指针

0、前言: 动态内存分配是一个重要概念,要和静态数组对比着学习;指针和数组搭配在一起,让指针理解的难度上了一个台阶,尤其是二维数组搭配指针,要获取数组的值,什么时候“取地址”,什…

单变量单步时序预测:CNN-GRU卷积神经网络结合门控循环单元

目录预测效果1. **CNN-GRU的基本原理**2. **应用场景**3. **模型结构与实现**4. **优势与挑战**5. **相关研究与实现**6. **未来发展方向**结论代码设计预测效果 CNN-GRU卷积神经网络结合门控循环单元是一种结合了卷积神经网络(CNN)和门控循环单元&#…

MonoFusion 与 Genie 3

卡内基梅隆大学的研究者发明了一种叫 MonoFusion 的新技术,它能用很少的普通相机(比如4个),就能拍出像电影特效一样细腻流畅的动态3D场景(4D重建),比如弹钢琴、修自行车这种复杂动作&#xff0c…

kubernets命令行创建Token并附加权限给dashboard控制台登录

1、创建登录token kubectl create token default -n graph-node-test dgjeojrgopejgeropjgpsdjgerjglsdjfsjogjeojgeorjgortlfhj4yu493460uwperg3wef;lsj2y3r934tnrhifrlfe9t4h5tlhobdrmlgw485tw4yp653ut9ogogjerolj4w9erjgotj3fgjletyj49yr20o359truyo5u6908430jt5grjsdtgj49…

什么是SpringBoot

题目详细答案Spring Boot 是由 Pivotal 团队提供的一个基于 Spring 框架的项目,它旨在简化 Spring 应用的开发和部署。Spring Boot 通过提供一系列的约定和开箱即用的功能,使得开发者可以更快地构建独立的、生产级的 Spring 应用程序,而无需进…

从零开始设计一个分布式KV存储:基于Raft的协程化实现

从零开始设计一个分布式KV存储:基于Raft的协程化实现 本文将以一个最小可运行的分布式KV系统为例,带你拆解如何用C、Raft算法和协程模型构建高可用的Key-Value存储。 一、为什么需要分布式KV? 单机KV(如Redis)存在单点…

虚拟机或docker的ubuntu无界面安装完成后镜像源设置

ubuntu系统源 在装好虚拟机或者docker镜像后,直接使用apt update && apt upgrade是无法完更新的。 此时系统中也没有vim工具,我们可以在清华源的网站中找到帮助文档。mirrors.tuna.tsinghua.edu.cn/help/ubuntu/为了避免冲突,我们使用…

串口通信02 温度传感DS18B20 01 day49

九:串口通信 通信:无线和有线 ​ 单工 半双工 全双工 并行:多个数据线 串行:一根数据线 同步:通信双方使用同一个时钟,SPI信息帧,有CLK引脚 异步:通信双方使用不同时钟,双…

【FreeRTOS 】任务通知

FreeRTOS 任务通知任务通知简介一 、发送通知1.1 xTaskNotify()1.2 xTaskNotifyFromISR()1.3 xTaskNotifyGive()1.4 xTaskNotifyAndQuery()1.5 xTaskNotifyAndQueryFromISR()二、接收通知2.1 ulTaskNotifyTake()2.2 xTaskNotifyWait()三、清除通知状态和值3.1 xTaskNotifyState…