【工具】提交工具
parent
f94e9a6919
commit
5475841e6b
|
|
@ -0,0 +1,51 @@
|
|||
#!/bin/bash
|
||||
# 自动上传dll脚本
|
||||
# 当前目录在C:/Work/Projects/NLDClient/Tool/dll_tools
|
||||
# 找到同级别C:/Work/Projects/NLDClient/ProjectNLD/Library/ScriptAssemblies/{0}.dll
|
||||
# 复制到指定位置 C:/Work/Projects/NLDClient/WaitUpload
|
||||
|
||||
# 读取传入参数
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "Usage: $0 <dll_name_without_extension>"
|
||||
echo "No arguments provided"
|
||||
exit 1
|
||||
fi
|
||||
if [ $# -gt 1 ]; then
|
||||
echo "Too many arguments provided"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 输出参数
|
||||
echo "Need To Find: $1"
|
||||
# 目标路径
|
||||
TARGET_PATH="../../WaitUpload"
|
||||
# 源路径
|
||||
SOURCE_PATH="../../ProjectNLD/Library/ScriptAssemblies"
|
||||
# 目标文件
|
||||
TARGET_FILE="$TARGET_PATH/$1.dll"
|
||||
# 源文件
|
||||
SOURCE_FILE="$SOURCE_PATH/$1.dll"
|
||||
|
||||
# 检查源文件是否存在
|
||||
if [ ! -f "$SOURCE_FILE" ]; then
|
||||
echo "Source file does not exist: $SOURCE_FILE"
|
||||
exit 1
|
||||
fi
|
||||
# 检查目标路径是否存在, 如果不存在则新建
|
||||
if [ ! -d "$TARGET_PATH" ]; then
|
||||
mkdir -p "$TARGET_PATH"
|
||||
fi
|
||||
# 检查目标文件是否存在, 如果存在则删除
|
||||
if [ -f "$TARGET_FILE" ]; then
|
||||
rm -f "$TARGET_FILE"
|
||||
fi
|
||||
# 复制文件
|
||||
cp "$SOURCE_FILE" "$TARGET_FILE"
|
||||
# 检查复制是否成功
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to copy file"
|
||||
exit 1
|
||||
fi
|
||||
# 输出结果
|
||||
echo "File copied successfully to $TARGET_FILE"
|
||||
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
pipeline {
|
||||
agent any
|
||||
|
||||
stages {
|
||||
stage('拉最新工程') {
|
||||
steps {
|
||||
script {
|
||||
def currentPath = sh(script: 'pwd', returnStdout: true).trim()
|
||||
echo "cd ${currentPath}"
|
||||
|
||||
// 如果仓库存在及还原脚本存在,进行子模块还原
|
||||
def gitDirExists = sh(script: '[ -d ".git" ] && echo "true" || echo "false"', returnStdout: true).trim()
|
||||
def scriptPathExists = fileExists("${WORKSPACE}/Tool/build_tools/git_revert_modules_modification.sh")
|
||||
if (gitDirExists == 'true' && scriptPathExists)
|
||||
{
|
||||
sh "chmod +x $WORKSPACE/Tool/build_tools/git_revert_modules_modification.sh"
|
||||
sh "$WORKSPACE/Tool/build_tools/git_revert_modules_modification.sh $WORKSPACE"
|
||||
}
|
||||
|
||||
def remote = GetRemote();
|
||||
echo "拉取分支:${remote}"
|
||||
checkout scmGit(branches: [[name: "*/${remote}"]],
|
||||
extensions: [checkoutOption(60), lfs(), cloneOption(noTags: false, reference: '', shallow: false, timeout: 120), submodule(recursiveSubmodules: true, reference: '', timeout: 1200)],
|
||||
userRemoteConfigs: [[url: 'http://1.14.122.170:3000/PHXH/NLDClient.git']])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('设置环境') {
|
||||
steps {
|
||||
// 将打包机器相关配置复制到打包路径下
|
||||
echo "copy local env file to $WORKSPACE"
|
||||
sh "cp /Users/mayuanzheng/Builds/local_env.sh $WORKSPACE/Tool/build_tools/"
|
||||
}
|
||||
}
|
||||
|
||||
stage('打开unity工程') {
|
||||
steps {
|
||||
// 需要用到dll_tools下的脚本
|
||||
// open_unity.sh
|
||||
// auto_upload_dll.sh
|
||||
// auto_upload_dll.sh 需要传入参数:dllName
|
||||
// push_to_git.sh
|
||||
|
||||
// 先给权限
|
||||
sh "chmod +x $WORKSPACE/Tool/build_tools/dll_tools/*"
|
||||
// 打开unity工程
|
||||
sh "cd $WORKSPACE/Tool/dll_tools && ./open_unity.sh"
|
||||
// 等待unity打开
|
||||
sleep 10
|
||||
// 执行自动上传dll脚本
|
||||
sh "cd $WORKSPACE/Tool/dll_tools && ./auto_upload_dll.sh GamePlay"
|
||||
// 等待上传完成
|
||||
sleep 10
|
||||
// 执行上传脚本
|
||||
sh "cd $WORKSPACE/Tool/dll_tools && ./push_to_git.sh"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,89 @@
|
|||
#!/bin/bash
|
||||
# 打开unity并等待编译完成后自动退出
|
||||
# 当前目录在C:/Work/Projects/NLDClient/Tool/dll_tools
|
||||
# 找到同级别C:/Work/Projects/NLDClient/ProjectNLD
|
||||
# 打开unity
|
||||
# 等待编译完成
|
||||
# 退出unity
|
||||
|
||||
# 获取当前脚本所在目录的绝对路径
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
# 基于当前脚本位置计算PROJECT_PATH
|
||||
# 当前目录是C:/Work/Projects/NLDClient/Tool/dll_tools
|
||||
# 我们需要向上两级再进入ProjectNLD目录
|
||||
PROJECT_PATH="$(dirname "$(dirname "$SCRIPT_DIR")")/ProjectNLD"
|
||||
echo "Calculated PROJECT_PATH: $PROJECT_PATH"
|
||||
|
||||
# 检查PROJECT_PATH是否存在
|
||||
if [ ! -d "$PROJECT_PATH" ]; then
|
||||
echo "PROJECT_PATH does not exist: $PROJECT_PATH"
|
||||
exit 1
|
||||
fi
|
||||
echo "PROJECT_PATH exists: $PROJECT_PATH"
|
||||
|
||||
# 检查本地是否有local_env.sh文件, 如果有则使用其中的路径, 里面定义了UNITY_PATH
|
||||
# 如果没有则使用默认的unity地址
|
||||
if [ -f ./local_env.sh ]; then
|
||||
source ./local_env.sh
|
||||
echo "found the local_env file"
|
||||
else
|
||||
# 没有则使用默认的unity地址
|
||||
# UNITY_PATH="/Applications/Unity/Hub/Editor/2022.3.50f1c1/Unity.app/Contents/MacOS/Unity"
|
||||
echo "local_env.sh not found, using default UNITY_PATH"
|
||||
UNITY_PATH="/Applications/Unity/Hub/Editor/2022.3.50f1c1/Unity.app/Contents/MacOS/Unity"
|
||||
fi
|
||||
# 输出UNITY_PATH
|
||||
echo "UNITY_PATH: $UNITY_PATH"
|
||||
|
||||
# 创建临时日志文件
|
||||
LOG_FILE="unity_build_$(date +%Y%m%d_%H%M%S).log"
|
||||
echo "Unity build log will be saved to $LOG_FILE"
|
||||
|
||||
# 创建一个临时的编辑器脚本,用于在编译完成后退出Unity
|
||||
TEMP_SCRIPT="$PROJECT_PATH/Assets/Editor/TempQuitAfterBuild.cs"
|
||||
mkdir -p "$(dirname "$TEMP_SCRIPT")"
|
||||
|
||||
cat > "$TEMP_SCRIPT" << 'EOL'
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
[InitializeOnLoad]
|
||||
public class QuitAfterBuild
|
||||
{
|
||||
static QuitAfterBuild()
|
||||
{
|
||||
EditorApplication.update += WaitForCompilation;
|
||||
}
|
||||
|
||||
static void WaitForCompilation()
|
||||
{
|
||||
if (!EditorApplication.isCompiling)
|
||||
{
|
||||
Debug.Log("Compilation finished. Quitting Unity...");
|
||||
EditorApplication.update -= WaitForCompilation;
|
||||
EditorApplication.Exit(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
EOL
|
||||
|
||||
echo "Starting Unity in batchmode..."
|
||||
|
||||
# 使用Unity的batchmode命令行参数打开项目
|
||||
"$UNITY_PATH" -projectPath "$PROJECT_PATH" -logFile "$LOG_FILE" &
|
||||
|
||||
# 保存Unity进程ID
|
||||
UNITY_PID=$!
|
||||
|
||||
echo "Unity started with PID: $UNITY_PID"
|
||||
echo "Waiting for Unity to complete compilation and exit..."
|
||||
|
||||
# 等待Unity进程结束
|
||||
wait $UNITY_PID
|
||||
|
||||
# 删除临时编辑器脚本
|
||||
rm -f "$TEMP_SCRIPT"
|
||||
|
||||
echo "Unity process has exited."
|
||||
echo "Build log available at: $LOG_FILE"
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
#!/bin/bash
|
||||
# 自动把dll上传到git
|
||||
# 当前目录在C:/Work/Projects/NLDClient/Tool/dll_tools
|
||||
# 当前存档dll路径C:/Work/Projects/NLDClient/WaitUpload
|
||||
# 找到绝对路径/Users/mayuanzheng/Documents/NoRemove/GamePlay_Dll
|
||||
# 复制所有dll到绝对路径中并覆盖
|
||||
# 使用git强制提交
|
||||
|
||||
# 获取dll所在路径
|
||||
SRC_DLL_PATH="../../WaitUpload"
|
||||
# 目标路径
|
||||
TARGET_PATH="/Users/mayuanzheng/Documents/NoRemove/GamePlay_Dll"
|
||||
|
||||
# 检查源路径是否存在
|
||||
if [ ! -d "$SRC_DLL_PATH" ]; then
|
||||
echo "Source path does not exist: $SRC_DLL_PATH"
|
||||
exit 1
|
||||
fi
|
||||
# 检查目标路径是否存在
|
||||
if [ ! -d "$TARGET_PATH" ]; then
|
||||
echo "Target path does not exist: $TARGET_PATH"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 拷贝所有dll到目标路径
|
||||
cp -rf "$SRC_DLL_PATH"/*.dll "$TARGET_PATH"
|
||||
# 检查拷贝是否成功
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to copy dll files"
|
||||
exit 1
|
||||
fi
|
||||
# 输出结果
|
||||
echo "Dll files copied successfully to $TARGET_PATH"
|
||||
|
||||
# 进入目标路径
|
||||
cd "$TARGET_PATH"
|
||||
# 检查是否进入成功
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to change directory to $TARGET_PATH"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 强制提交
|
||||
git add .
|
||||
# 添加时间戳到提交信息
|
||||
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
|
||||
git commit -m "Auto upload dll - $TIMESTAMP"
|
||||
git push --force
|
||||
# 检查提交是否成功
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to push to git"
|
||||
exit 1
|
||||
fi
|
||||
# 输出结果
|
||||
echo "Dll files pushed to git successfully"
|
||||
Loading…
Reference in New Issue