Merge pull request #124 from onerain88/upm-deployment
支持本地发布 UPM 包
commit
d6ef88fb3f
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
"name": "com.leancloud.realtime",
|
||||||
|
"version": "__VERSION__",
|
||||||
|
"displayName": "LeanCloud Realtime",
|
||||||
|
"description": "This is leancloud realtime package",
|
||||||
|
"unity": "2019.1",
|
||||||
|
"dependencies": {
|
||||||
|
"com.leancloud.storage": "https://github.com/leancloud/csharp-sdk.git#upm-storage-__VERSION__"
|
||||||
|
},
|
||||||
|
"keywords": ["LeanCloud", "Storage"],
|
||||||
|
"author": {
|
||||||
|
"name": "LeanCloud",
|
||||||
|
"email": "support@leancloud.rocks",
|
||||||
|
"url": "https://leancloud.cn/"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
{
|
||||||
|
"name": "com.leancloud.storage",
|
||||||
|
"version": "__VERSION__",
|
||||||
|
"displayName": "LeanCloud Storage",
|
||||||
|
"description": "This is leancloud storage package",
|
||||||
|
"unity": "2019.1",
|
||||||
|
"dependencies": {},
|
||||||
|
"keywords": ["LeanCloud", "Storage"],
|
||||||
|
"author": {
|
||||||
|
"name": "LeanCloud",
|
||||||
|
"email": "support@leancloud.rocks",
|
||||||
|
"url": "https://leancloud.cn/"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,111 @@
|
||||||
|
#!/bin/sh
|
||||||
|
VERSION_REGEX="^[0-9]+(\.[0-9]+){2}$"
|
||||||
|
|
||||||
|
version=$1
|
||||||
|
|
||||||
|
STORAGE_RELEASE_URL="https://github.com/leancloud/csharp-sdk/releases/download/$version/LeanCloud-SDK-Storage-Unity.zip"
|
||||||
|
REALTIME_RELEASE_URL="https://github.com/leancloud/csharp-sdk/releases/download/$version/LeanCloud-SDK-Realtime-Unity.zip"
|
||||||
|
|
||||||
|
REPO_GIT_URL="git@github.com:leancloud/csharp-sdk.git"
|
||||||
|
|
||||||
|
UNITY_PATH="/Applications/Unity/Hub/Editor/2020.3.5f1c1/Unity.app/Contents/MacOS/Unity"
|
||||||
|
|
||||||
|
# 从 Releases 下载
|
||||||
|
download() {
|
||||||
|
releaseURL=$1
|
||||||
|
upmPath=$2
|
||||||
|
# Plugins
|
||||||
|
zipFile=`basename "$releaseURL"`
|
||||||
|
curl -L $releaseURL -o $zipFile
|
||||||
|
unzip $zipFile -d $upmPath
|
||||||
|
rm $zipFile
|
||||||
|
}
|
||||||
|
|
||||||
|
# 去掉依赖中的重复文件
|
||||||
|
diff() {
|
||||||
|
srcPath=$1
|
||||||
|
dstPath=$2
|
||||||
|
for df in `ls $dstPath`:
|
||||||
|
do
|
||||||
|
for sf in `ls $srcPath`:
|
||||||
|
do
|
||||||
|
if cmp -s $dstPath/$df $srcPath/$sf
|
||||||
|
then
|
||||||
|
rm $dstPath/$df
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# 生成 package.json
|
||||||
|
package() {
|
||||||
|
packageJson=$1
|
||||||
|
upmPath=$2
|
||||||
|
|
||||||
|
cat $packageJson | sed 's/__VERSION__/'$version'/' > $upmPath/package.json
|
||||||
|
}
|
||||||
|
|
||||||
|
# 生成 .meta 文件并 push 到 GitHub
|
||||||
|
deploy() {
|
||||||
|
upmPath=$1
|
||||||
|
tagPrefix=$1
|
||||||
|
|
||||||
|
# 创建 Unity 工程
|
||||||
|
unityProject=./Unity/UnityProject
|
||||||
|
$UNITY_PATH -batchmode -quit -createProject $unityProject
|
||||||
|
|
||||||
|
# 将 UPM 包移动到 Unity Project 下
|
||||||
|
unityAssetsPath=$unityProject/Assets
|
||||||
|
mv $upmPath/* $unityAssetsPath/
|
||||||
|
|
||||||
|
# 使用 Unity Editor 打开工程,生成 .meta 文件
|
||||||
|
$UNITY_PATH -batchmode -quit -nographics -silent-crashes -projectPath $unityProject
|
||||||
|
|
||||||
|
mv $unityAssetsPath/* $upmPath/
|
||||||
|
|
||||||
|
# 移除临时 Unity 工程
|
||||||
|
rm -rf $unityProject
|
||||||
|
|
||||||
|
# push 到 GitHub
|
||||||
|
upmTag=$tagPrefix-$version
|
||||||
|
cd $upmPath
|
||||||
|
|
||||||
|
git init
|
||||||
|
git config user.name "leancloud-bot";
|
||||||
|
git config user.email "ci@leancloud.cn";
|
||||||
|
git add .
|
||||||
|
git commit -m $version .;
|
||||||
|
git tag $upmTag
|
||||||
|
# git push origin $version
|
||||||
|
git push -f $REPO_GIT_URL $upmTag
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
rm -rf $upmPath
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ !($version =~ $VERSION_REGEX) ]]; then
|
||||||
|
echo 'Invalid version'
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if !(test -f $UNITY_PATH); then
|
||||||
|
echo 'Unity does NOT exist.'
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
upmStoragePath="upm-storage"
|
||||||
|
upmRealtimePath="upm-realtime"
|
||||||
|
|
||||||
|
mkdir $upmStorage && mkdir $upmRealtime
|
||||||
|
|
||||||
|
download $STORAGE_RELEASE_URL $upmStoragePath
|
||||||
|
download $REALTIME_RELEASE_URL $upmRealtimePath
|
||||||
|
|
||||||
|
diff $upmStoragePath/Plugins $upmRealtimePath/Plugins
|
||||||
|
|
||||||
|
package ./Unity/storage.package.json $upmStoragePath
|
||||||
|
package ./Unity/realtime.package.json $upmRealtimePath
|
||||||
|
|
||||||
|
deploy $upmStoragePath
|
||||||
|
deploy $upmRealtimePath
|
Loading…
Reference in New Issue