# Jenkins 搭建和脚本
搭建Jenkins
满足移动端持续集成和交付的流水线,提高交付效率
# Jenkins 安装配置:
# MAC环境:
强烈建议 使用命令行进行安装,使用安装包 dmg
安装会有很多权限问题无法解决
安装成功后会启动网页 http://localhost:8080
漫长的等待...
输入密码:会有提示在哪个路径下的存放着密码文件
漫长的等待...
到弹出让你选择安装插件时,已经接近成功中
漫长的等待... 插件安装完成后,基本可以使用了
# Windows:
无
# Jenkins 任务执行
# H5:
cd $WORKSPACE
npm install
npm run alpha
sh script_package_push.sh
# Android:
echo "当前编译的任务名称:$JOB_NAME 远程分支:$GIT_BRANCH"
cd $WORKSPACE
chmod +x gradlew
./gradlew clean
if [[ $GIT_BRANCH == "origin/fir" ]]; then
./gradlew assembleMmm_ability_testRelease
elif [[ $GIT_BRANCH == "origin/xxxxxxxxxxxx" ]]; then
echo "以后相同工程中,不同分支构建不同的apk时,会使用到!!!"
else
echo "未匹配到相应的分支进行编译"
fi
sh script_upload_android.sh
# IOS:
cd $WORKSPACE
pod update
sh genProj
sh script_compiler_upload_ios.sh
# Jenkins 任务脚本
能力展示脚本(Android):script_upload_android (opens new window)
标准平台脚本(IOS):script_compiler_upload_ios (opens new window)
Android脚本示例:script_upload_android.sh
#!/bin/sh
echo "\033[32m --------------脚本开始-------------- \033[0m"
# 获取jenkins下的工程脚本所在目录 注:/Users/apple/.jenkins/workspace/paas_android
script_dir="$( cd "$( dirname "$0" )" && pwd )"
# 待上传文件路径(android apk path)
uploadFolder="${script_dir}/app/build/outputs/apk/tl_paas_test/release"
echo "\033[32m uploadFolder:$uploadFolder \033[0m"
# 待上传文件后缀
uploadFileSuffix="*.apk"
## 直接写入地址信息
#find $uploadFolder -name $uploadFileSuffix > ./apkPath.txt
# 遍历后得到变量
for uploadFilePath in `find $uploadFolder -name $uploadFileSuffix`
do
# echo $uploadFilePath > ./path.txt
echo "\033[32m uploadFilePath:$uploadFilePath \033[0m"
done
# 检查文件是否存在
if [ -f "${uploadFilePath}" ]
then
# fir Token
fir_token="xxxxxxxxxxxx"
# fir 上传日志备注
fir_remark="上传日志备注~~~"
# fir cli 登录
fir login -T $fir_token
# fir cli 上传资源,完成后返回信息(-T 包含登录) 企业微信:--wxwork-webhook=https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=b8028a75-89ff-4dc4-a1a7-6d8e3fd44552
fir_result=$(fir publish $uploadFilePath -T $fir_token -R -c $fir_remark)
echo "\033[32m ${fir_result} \033[0m"
## 获取 fir.im 的地址
fir_address=$(echo $fir_result | grep -Eo "Published succeed: (.*?) I")
## 字符截取
fir_address=$(echo ${fir_address% *})
fir_address=$(echo ${fir_address##* })
if [[ $fir_address == "http"* ]]
then
# 写入下载地址
echo $fir_address > ./firDownload.txt
echo "\033[32m $fir_address 下载地址写入本地成功 \033[0m"
else
rm -f ./firDownload.txt
echo "\033[31m $fir_address 不是有效下载地址 \033[0m"
fi
## 文件类型: apk || ipa
extension=${uploadFilePath##*.}
echo "\033[36m DescroptionStart $extension <a href=\"$fir_address\">下载地址:$fir_address</a>DescroptionEnd \033[0m"
else
echo "\033[31m 当前路径下文件不存在:${uploadFilePath} 😢 😢 😢 \033[0m"
exit 1
fi
exit 0
# Jenkins 插件开发
# maven安装
- 安装 maven3.x ,下载 (opens new window) zip后,直接解压,在环境变量path中加上路径,如.
E:\apache-maven-3.6.3\bin
cmd
运行mvn -version
看是否显示版本则成功,比较简单~- 查看maven运行命令
# maven编译打包
- 参考 maven项目打包 文档
← Git流程规范 Linux 工作指令 →