# Jenkins 搭建和脚本

搭建Jenkins 满足移动端持续集成和交付的流水线,提高交付效率

# Jenkins 安装配置:

# MAC环境:

强烈建议 使用命令行进行安装,使用安装包 dmg 安装会有很多权限问题无法解决

  1. 安装步骤地址 (opens new window)

  2. 安装成功后会启动网页 http://localhost:8080

  3. 漫长的等待...

  4. 输入密码:会有提示在哪个路径下的存放着密码文件

  5. 漫长的等待...

  6. 到弹出让你选择安装插件时,已经接近成功中

  7. 漫长的等待... 插件安装完成后,基本可以使用了

# 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安装

  1. 安装 maven3.x ,下载 (opens new window) zip后,直接解压,在环境变量path中加上路径,如.E:\apache-maven-3.6.3\bin
  2. cmd 运行 mvn -version 看是否显示版本则成功,比较简单~
  3. 查看maven运行命令

# maven编译打包

  1. 参考 maven项目打包 文档
最后更新时间: 11/24/2021, 7:52:44 AM