Mac环境jenkins多渠道配置打包Flutter、Android应用

前言

关于Flutter、Android多渠道配置打包,源码

Jenkins安装

两种安装方式:

  1. 使用命令行安装稳定版
brew install jenkins-lts
  1. 下载pkg安装包
    官方下载安装包地址,官方不推荐使用这种方式

使用brew安装会自动安装openjdk,也可以使用自己环境的jdk,我不想使用openjdk的环境,所以我修改了配置文件,加载本地的jdk环境。如果想修改,可以跳过这一部分内容。

  1. 首先
cd /usr/local/opt/jenkins

先复制一个homebrew.mxcl.jenkins.plist文件,再打开homebrew.mxcl.jenkins.plist文件
在这里插入图片描述
修改这两部分的内容,第一个修改为自己的jdk环境,第二个作用是允许局域网ip访问,如果是默认的127.0.0.1,可能会只允许本地访问。

<string>/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home/bin/java</string>
<string>--httpListenAddress=0.0.0.0</string>

启动

启动、停止、重启命令

brew services start jenkins
brew services stop jenkins
brew services restart jenkins

使用brew services start jenkins启动jenkins,第一次在控制台启动会把初始密码显示出来,直接复制就行。如果没有出现初始化密码,可以使用命令查看

cat /Users/用户/.jenkins/secrets/initialAdminPassword

在这里插入图片描述
根据推荐安装插件
在这里插入图片描述

安装插件

Git Parameter: git分支管理,参数配置。
description setter plugin: 主要用在构建完成,设置参数使用。
Upload to pgyer: 上传到蒲公英的插件吗,蒲公英插件文档

项目配置

jenkins默认的工作空间:/Users/用户/.jenkins/workspace

General配置

先配置一个废弃的机制
在这里插入图片描述
配置分支变量,下面会用到
在这里插入图片描述
定义通道变量名
在这里插入图片描述
定义dev还是pro变量名
在这里插入图片描述

源码管理

在这里插入图片描述

构建

这一部分,添加一个execute shell,执行shell脚本
在这里插入图片描述

#!/bin/bash
source ~/.bash_profile
flutter pub get
cd android
echo "BUILD_CHANNEL=${channel}"
export channel_name=${channel}
# 获取首字母大写的Common
firstLetter=${channel_name:0:1}
otherLetter=${channel_name:1}
firstLetter=$(echo $firstLetter | tr '[a-z]' '[A-Z]')
channel_result=$firstLetter$otherLetter
  
echo "channel_result=${channel_result}"
  
./gradlew "assemble${channel_result}${env}Release"

构建后操作

upload to pgyer with apiV2模块:作用是上传应用包到蒲公英,参考官方文档

${WORKSPACE}/build/app/outputs/apk/${channel}${env}/release

set build description模块: 作用是将蒲公英回调的结果,使用二维码显示出来。

<a href="${appBuildURL}"><img src="${appQRCodeURL}" width="120" height="120"/></a>

注意先后顺序,先upload to pgyer with apiV2模块,再使用set build description模块,可以拖动调整顺序。因为要等上传完蒲公英,才能得到二维码的回调。

在这里插入图片描述

执行

在这里插入图片描述

解决问题

找不到./gradlew命令

在这里插入图片描述
先去到jenkins对应的工程目录

cd /Users/用户/.jenkins/workspace/flutter_jenkins/android

解决方法1

可以把其他Android项目的gradlew和gradlew.bat可执行文件放在/Users/用户/.jenkins/workspace/flutter_jenkins/android目录下。
在这里插入图片描述

解决方法2

用android studio打开/Users/用户/.jenkins/workspace/flutter_jenkins/android这个工程,双击这个命令,自动生成gradlew文件
在这里插入图片描述

只显示代码,没有正常显示二维码

在这里插入图片描述

因为Jenkins出于安全的考虑,所有描述信息的Markup Formatter默认都是采用Plain text模式,在这种模式下是不会对build描述信息中的HTML编码进行解析的。

修改配置文件,Manage Jenkins -> Configure Global Security,将Markup Formatter的设置更改为Safe HTML即可。
在这里插入图片描述
再刷新一下项目就可以看到二维码
在这里插入图片描述

局域网ip无法访问jenkins

修改配置

使用brew安装jenkins会避免很多其他安装方式产生的用户权限问题,但是会将httpListenAddress默认设置为127.0.0.1,这样我们虽然可以在本地用localhost:8080访问,但是本机和局域网均无法用ip访问。解决办法为修改两个路径下的plist配置。
~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
/usr/local/opt/jenkins/homebrew.mxcl.jenkins.plist
将上面两个plist中的httpListenAddress后的ip地址,修改为本机IP或者0.0.0.0即可。

可能与nginx的端口占用有关

vim /usr/local/etc/nginx/nginx.conf
打开这个文件配置,将下面注释

# listen 8080;
# server_name localhost;

在这里插入图片描述
使用命令brew services restart nginx,重启nginx即可,或者改变端口。更省事的话直接关闭nginx。

参考

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值