feat: 初始化雄戈商城服务端代码与Webhook自动部署配置
这个提交包含在:
48
deploy.sh
普通文件
48
deploy.sh
普通文件
@@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
# 雄戈商城自动部署脚本
|
||||
set -e
|
||||
|
||||
DEPLOY_DIR="/www/wwwroot/xgsc.gynhc.com"
|
||||
LOG_FILE="${DEPLOY_DIR}/runtime/deploy.log"
|
||||
TARGET_BRANCH="${1:-master}"
|
||||
DATE=$(date '+%Y-%m-%d %H:%M:%S')
|
||||
|
||||
echo "[${DATE}] >>> 开始部署分支: ${TARGET_BRANCH}..." >> "${LOG_FILE}"
|
||||
|
||||
cd "${DEPLOY_DIR}"
|
||||
|
||||
# 检查是否为 git 仓库
|
||||
if [ ! -d ".git" ]; then
|
||||
echo "[${DATE}] 错误: ${DEPLOY_DIR} 尚未初始化为 Git 仓库" >> "${LOG_FILE}"
|
||||
echo "Git repo not initialized"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 保护敏感配置文件:备份 database.php
|
||||
if [ -f "application/database.php" ]; then
|
||||
cp -p application/database.php application/database.php.deploy_bak
|
||||
fi
|
||||
|
||||
# 忽略文件权限与文件模式变动
|
||||
git config core.fileMode false
|
||||
|
||||
# 拉取最新代码并硬重置
|
||||
echo "[${DATE}] 执行 git fetch origin ${TARGET_BRANCH}..." >> "${LOG_FILE}"
|
||||
git fetch origin "${TARGET_BRANCH}" >> "${LOG_FILE}" 2>&1
|
||||
git reset --hard "origin/${TARGET_BRANCH}" >> "${LOG_FILE}" 2>&1
|
||||
|
||||
# 恢复敏感配置文件(若被覆盖或缺失)
|
||||
if [ -f "application/database.php.deploy_bak" ]; then
|
||||
cp -p application/database.php.deploy_bak application/database.php
|
||||
rm -f application/database.php.deploy_bak
|
||||
fi
|
||||
|
||||
# 维护关键目录权限
|
||||
chmod -R 777 runtime 2>/dev/null || true
|
||||
chmod -R 775 public/uploads 2>/dev/null || true
|
||||
|
||||
COMMIT_INFO=$(git log -1 --pretty=format:"%h - %s (%an, %cd)")
|
||||
echo "[${DATE}] 当前最新版本: ${COMMIT_INFO}" >> "${LOG_FILE}"
|
||||
echo "[${DATE}] >>> 部署成功完成" >> "${LOG_FILE}"
|
||||
|
||||
echo "Deploy success: ${COMMIT_INFO}"
|
||||
在新工单中引用
屏蔽一个用户