ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2021-10-14

2021-10-14 21:05:02  阅读:221  来源: 互联网

标签:svn 10 14 echo PROJ Jenkins PATH txt 2021


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命令,和我有一样需求的同学快去动手吧。如有不足地方请指正。新人一枚

标签:svn,10,14,echo,PROJ,Jenkins,PATH,txt,2021
来源: https://blog.csdn.net/weixin_43833427/article/details/120771689

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有