2021-10-14

Jenkins 部署Unity 自动打包 (svn自动化切换分支上传) (Mac Shell命令)


前言

团队人员需要客户端的包去看效果,不可能让我们前端去给他们打包,所以就写了自动化程序,部署到Jenkins环境上


提示:以下是本篇文章正文内容,下面案例可供参考

一、Jenkins是什么?

Jenkins 大家可以去百度了解,安装部署等在百度上很多教程,这里不再讲解。

二、首先要写shell脚本

1.在Mac 上新建build.sh文件

$ touch build.sh
$ vim build.sh

写shell 逻辑

#!/bin/sh
# 分支本地路径
svnpath=$1
# 平台
platform=$2
# 分支url http
branchesUrl="url"  
# 拼接完成的分支url
branches="${branchesUrl}/${3}"
trunk="trunk"
windows="windows"
android="android"
# app path
UNITY_PATH="/Applications/Unity/Hub/Editor/2020.3.12f1c1/Unity.app/Contents/MacOS/Unity"
# project path
PROJ_PATH="/Users/game/client"
# App path
APP_PATH="/Users/bin/client/intranet/${platform}"
# 如果出包目录为空 则创建目录
if [ ! -d "$APP_PATH" ]; then
  mkdir "$APP_PATH"
fi
# 定位到对应的本地分支地址
if [ $svnpath = $trunk ];then
   PROJ_PATH="${PROJ_PATH}/${svnpath}"
   if [ $platform = $android ];then
       PROJ_PATH="${PROJ_PATH}_an"
   fi
   cd $PROJ_PATH
   svn cleanup
   svn up
   echo $PROJ_PATH
else
   PROJ_PATH="${PROJ_PATH}/${svnpath}/${svnpath}1"
   if [ $platform = $android ];then
       PROJ_PATH="${PROJ_PATH}_an"
   fi
   cd $PROJ_PATH
   svn cleanup
   svn sw $branches
   svn up
   echo $PROJ_PATH
fi
# svn 还原
svn revert Assets -R
# svn 删除掉没有版本控制的文件及文件夹
svn status Assets | grep '^?' | awk '{print $2}' | xargs rm -rf
# 表路径 打表 更新最新的表
DATA_PATH="${PROJ_PATH}/data/AlphaData"
# 游戏表路径
GAME_DB_PATH="${PROJ_PATH}/Assets/AssetBundles/DB"

echo "开始生成数据表"
cd data/ExcelTools
./ExcelTool.sh db $DATA_PATH $GAME_DB_PATH 0 gameConfig.db.bytes 0 0
echo "数据生成成功"
echo "开始出包App"
# 先更新出包目录
cd $APP_PATH
svn up
# "============== Unity Build EXE Begin =============="
$UNITY_PATH -projectPath $PROJ_PATH -executeMethod CS.Jenkins.JenkinsHelper.JenkinsBuild -batchmode -logFile ${APP_PATH}/Log/${platform}.log -quit $1 $2 $3
# "============== Unity Build EXE Finish =============="
echo "App出包成功"

echo "svn提交打好的包"
svn add --force $APP_PATH/*
svn commit $APP_PATH/ -m "readme ..."

2.创建Jenkins 任务项目

增加参数构建
参数1
参数2
参数3

增加构建步骤
增加构建步骤

#!/bin/bash -ilex
cd /Users/game
./build.sh $svnpath $platform $branches

效果如下
效果图

2.创建Jenkins 自动化任务项目

此自动化任务是访问svn 查看分支有多少列表
然后自动化填入 本地表中,方便参数三读取

首先我们构建触发器,让它没一分钟检查一次svn 列出svn 分支列表
构建触发器
执行shell
CheckSvnList.sh 内容如下

#!/bin/sh

mysvn list http://svn.xxx.com/svn/game/client/branches > branchesPath.txt

# 合并到一行逗号隔开 保存到临时文件中
echo `xargs < branchesPath.txt`|tr " " "," > temp.txt
# 删除 原本的文件
rm -rf branchesPath.txt
# 去掉/
sed -i '' 's/\///g' temp.txt

content=`cat temp.txt`
# 给内容加上前缀 branches= 让jenkins读取 
echo "branches=${content}" > temp1.txt
rm -rf temp.txt
# 替换成原文件
mv temp1.txt branchesPath.txt

到此svn jenkins 自动化分支做完

总结

本次在Mac部署jenkins 自动化 学到了很多Mac命令 和svn命令,和我有一样需求的同学快去动手吧。如有不足地方请指正。新人一枚 😊😊😊😊😊😊

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值