44 lines
1.5 KiB
YAML
44 lines
1.5 KiB
YAML
name: Deploy
|
||
|
||
on:
|
||
push:
|
||
branches: [main, v2]
|
||
|
||
jobs:
|
||
deploy:
|
||
runs-on: aliyun
|
||
steps:
|
||
- name: Deploy
|
||
run: |
|
||
GIT_URL="http://8.161.227.145:3000/XEngineers/CamTalk.git"
|
||
if [ -d /root/camtalk/.git ]; then
|
||
cd /root/camtalk
|
||
git fetch "$GIT_URL" ${GITHUB_REF_NAME} --depth=1
|
||
git reset --hard FETCH_HEAD
|
||
else
|
||
git clone --depth=1 --branch ${GITHUB_REF_NAME} \
|
||
http://8.161.227.145:3000/XEngineers/CamTalk.git /tmp/camtalk-deploy
|
||
mkdir -p /root/camtalk
|
||
rsync -a --delete \
|
||
--exclude='.env' \
|
||
--exclude='pgdata' \
|
||
--exclude='redisdata' \
|
||
/tmp/camtalk-deploy/ /root/camtalk/
|
||
rm -rf /tmp/camtalk-deploy
|
||
fi
|
||
|
||
# 确保 .env 存在于项目目录(CI 容器内无法直接访问 /opt)
|
||
if [ ! -f /root/camtalk/.env ]; then
|
||
cp /opt/camtalk/.env /root/camtalk/.env 2>/dev/null || true
|
||
fi
|
||
if [ ! -f /root/camtalk/.env ]; then
|
||
echo "=============================================="
|
||
echo " 错误: /root/camtalk/.env 不存在"
|
||
echo " 请在服务器上执行: cp /opt/camtalk/.env /root/camtalk/.env"
|
||
echo "=============================================="
|
||
exit 1
|
||
fi
|
||
|
||
chmod +x /root/camtalk/deploy.sh
|
||
/root/camtalk/deploy.sh build
|
||
/root/camtalk/deploy.sh restart |