Mac系统下,保姆级Jenkins自动化部署Android

一、Jenkins自动化部署

1、安装jenkins

官网:macOS Installers for Jenkins LTS

选择macOS

brew install jenkins-lts

安装最新: brew install jenkins-lts

启动jenkins服务: brew services start jenkins-lts

重启jenkins服务: brew services restart jenkins-lts

更新jenkins版本: brew upgrade jenkins-lts

2、 打开浏览器进入链接 http://localhost:8080.
3、填写初始密码,激活系统

在/Users/你的电脑名称/.jenkins/secrets/initialAdminPassword文件中找到密码 并且填写激活

4、安装推荐的插件,安装成功
5、设置用户名密码
6、实例配置

7、全局配置

配置完成进来首页,点击Tools

8、配置JDK,新增JDK

9、配置git 路径:/usr/bin/git

10、Gradle安装

先安装一个项目中用到的6.5版本,操作完这三个,点击下面的保存,回到Manage Jenkins

11、系统配置,

打开下面的System

12、配置 ANDROID_SDK 的路径

增加 android_home 的环境变量

ANDROID_HOME=/Users/xxx/Library/Android/sdk,配置完点击保存

13、接下来就要创建项目了,选择自由风格

14、配置git

15、我们的git地址是http,所以需要配置认证,Credentials中点击添加

再打开的窗口中,输入你的代码库用户名密码

16、构建打包脚本,这里有这些选项,可以使用 Invoke Gradle script,

不会写shell脚本,我先用了Invoke Gradle script

选择 Use Gradle Wrapper Tasks里面写上clean assembleRelease

因为平时在Android studio中打包命令是 ./gradlew clean assembleDebug ./gradlew clean assembleRelease

所以Tasks里面是这样写的

17、配置构建后操作

选择归档成品

**/*.apk

构建成功,哦耶!

apk路径在工作空间/app/build/output  下面

二、上面实现了最基本的构建打包过程,下面我们来实现一下参数化配置,让其更秀!

配置参数化构建过程

1、添加参数,选项参数,构建类型,release包还是debug包

2、添加参数,字符参数CHANNEL,渠道,多个渠道用逗号分隔

3、这时发现我没有Git Parameter,所以去插件管理里面,搜索这个插件进行安装

这样就可以实现分支选择了

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Angular系列教程之变更检测与性能优化

文章目录 前言变更检测的原理脏检查OnPush策略 示例代码总结 前言 Angular 除了默认的变化检测机制,也提供了ChangeDetectionStrategy.OnPush,用 OnPush 可以跳过某个组件或者某个父组件以及它下面所有子组件的变化检测。 在本文中,我们将探…

grep 在运维中的常用可选项

一、对比两个文件 vim -d <filename1> <filename2> 演示&#xff1a; 需求&#xff1a;&#xff5e;目录下有两个文件一个test.txt 以及 text2.txt,需求对比两个文件的内容。 执行后会显示如图&#xff0c;不同会高亮。 二、两次过滤 场景&#xff1a;当需要多…

如何用AI提高论文阅读效率?

已经2024年了&#xff0c;该出现一个写论文解读AI Agent了。 大家肯定也在经常刷论文吧。 但真正尝试过用GPT去刷论文、写论文解读的小伙伴&#xff0c;一定深有体验——费劲。其他agents也没有能搞定的&#xff0c;今天我发现了一个超级厉害的写论文解读的agent &#xff0c…

rust跟我学六:虚拟机检测

图为RUST吉祥物 大家好,我是get_local_info作者带剑书生,这里用一篇文章讲解get_local_info是怎么检测是否在虚拟机里运行的。 首先,先要了解get_local_info是什么? get_local_info是一个获取linux系统信息的rust三方库,并提供一些常用功能,目前版本0.2.4。详细介绍地址:…

标准ERP产品的许可期限为,2023-12-22,当前已超过使用期限,请联系系统管理员更新许可或者删除超期的许可

项目场景&#xff1a; 金蝶云星空客户端 问题描述 标准ERP产品的许可期限为&#xff0c;2023-12-22&#xff0c;当前已超过使用期限&#xff0c;请联系系统管理员更新许可或者删除超期的许可! 原因分析&#xff1a; 这个报错提示是金蝶对第三方行业许可强制绑定,行业许可到…

Android PendingIntent 闪退

先来给大家推荐一个我日常会使用到的图片高清处理在线工具&#xff0c;主要是免费&#xff0c;直接白嫖 。 有时候我看到一张图片感觉很不错&#xff0c;但是图片清晰度不合我意&#xff0c;就想有没有什么工具可以处理让其更清晰&#xff0c; 网上随便搜下就能找到&#xff…

MySQL创建表及插入数据

一、创建英雄表&#xff08;hero&#xff09; mysql> use db_han Database changed mysql> create table hero(-> name varchar(20) primary key,-> nickname varchar(20),-> address varchar(20),-> groups varchar(20),-> emile int,-> telephone i…

6.3.1认识Camtasia4(2)

6.3.2录制声音 Camtasia4也可以用来录制声音&#xff0c;不过它在音频的录制与处理上要比GoldWave5差了很多。 1&#xff0e;在Camtasia Studio主程序中&#xff0c;单击【工具】|【Camtasia音频编辑器】&#xff0c;启动Camtasia音频编辑器。在弹出的欢迎界面中&#xff0c;…

如何在网络爬虫中解决CAPTCHA?使用Python进行网络爬虫

网络爬虫是从网站提取数据的重要方法。然而&#xff0c;在进行网络爬虫时&#xff0c;常常会遇到一个障碍&#xff0c;那就是CAPTCHA&#xff08;全自动公共图灵测试以区分计算机和人类&#xff09;。本文将介绍在网络爬虫中解决CAPTCHA的最佳方法&#xff0c;并重点介绍CapSol…

redis数据安全(三)数据持久化 AOF

接上一篇RDB&#xff0c;本篇看下Redis数据持久化的第二种方式AOF。 目录 一、AOF原理 1、写入机制&#xff1a; 2、缓冲机制&#xff1a; 3、重写机制 &#xff1a; 4、运行流程 二、AOF文件配置 1、开启AOF&#xff1a; 2、自动触发AOF重写 3、重写规则&#xff1…

山海鲸:金融机构数据管理的得力助手

在当今数字化的时代&#xff0c;数据已经成为金融机构的核心资产和决策依据。然而&#xff0c;如何有效地管理和分析这些数据&#xff0c;成为了金融机构面临的挑战。这时&#xff0c;一款强大的数据可视化工具显得尤为重要&#xff0c;山海鲸可视化正是这样一款助力金融机构轻…

ElasticSearch概述+SpringBoot 集成ES

ES概述 开源的、高扩展的、分布式全文检索引擎【站内搜索】 解决问题 1.搜索词是一个整体时&#xff0c;不能拆分&#xff08;mysql整体连续&#xff09; 2.效率会低&#xff0c;不会用到索引&#xff08;mysql索引失效&#xff09; 解决方式 进行数据的存储&#xff08;只存储…

【中大主办会议】第五届电子通讯与人工智能国际学术会议(ICECAI 2024)

第五届电子通讯与人工智能国际学术会议&#xff08;ICECAI 2024&#xff09; 2024 5th International Conference on Electronic communication and Artificial Intelligence 第五届电子通讯与人工智能国际学术会议&#xff08;ICECAI 2024&#xff09;将于2024年5月31日-6月…

导入失败,报错:“too many filtered rows xxx, “ErrorURL“:“

一、问题&#xff1a; 注&#xff1a;前面能正常写入&#xff0c;突然就报错&#xff0c;导入失败&#xff0c;报错&#xff1a;“too many filtered rows xxx, "ErrorURL":" {"TxnId":769494,"Label":"datax_doris_writer_bf176078-…

【算法Hot100系列】接雨水

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

分销商城多端uniapp 可编译5端 - 等级提现额度

等级提现额度 等级提现额度是一种常见的财务管理策略&#xff0c;通常用于在线平台、金融服务或游戏中&#xff0c;用于控制不同等级用户的提现限额。这样的机制有助于平台管理资金流动性&#xff0c;防范欺诈&#xff0c;并鼓励用户提升他们的活跃度或忠诚度。以下是一个简单的…

el-date-picker组件设置时间范围限制

需求&#xff1a; 如图所示&#xff0c;下图为新增的一个弹层页面&#xff0c;同时有个需求&#xff0c;日期选择需要限制一个月的时间范围&#xff08;一月默认为30天&#xff09;&#xff1a; 查看官方文档我们需要主要使用到如下表格的一些东西&#xff1a; 参数说明类型可…

java应用CPU过高查找原因

用top查到占用cpu最高的进程pid 根据进程ID找到占用CPU高的线程 ps -mp 60355 -o THREAD,tid | sort -r 用 printf "%x \n" 将tid换为十六进制&#xff1a;xid printf "%x \n" 6036 根据16进制格式的线程ID查找线程堆栈信息 jstack 60355 |grep ebcb -A…

[NISACTF 2022]babyserialize

[NISACTF 2022]babyserialize 题目做法及思路解析&#xff08;个人分享&#xff09; 题目平台地址&#xff1a;NSSCTF | 在线CTF平台 一、题目代码 查看分析代码&#xff0c;寻找漏洞点&#xff08;题目中注释为个人思路标注&#xff0c;实际代码中没有&#xff09; …

uniapp 使用canvas制作柱状图

效果图&#xff1a; 实现思路&#xff1a; 1、通过展示数据计算需要画几根柱子&#xff1b; 2、通过组件宽度、高度计算出每根柱子的宽度及高度&#xff1b; 3、for循环依次绘制每根柱子&#xff1b; 4、绘制柱子时&#xff0c;先绘制顶部百分比、value值&#xff0c;再绘制柱子…