Files
ESP32_GDEY042T81_server/.gitea/workflows/deploy.yaml
jeremygan2021 373ce8cb2e
Some checks failed
Deploy to Server / deploy (push) Has been cancelled
action
2026-03-02 13:07:34 +08:00

65 lines
2.2 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name: Deploy to Server
on:
push:
branches:
- main
- master
jobs:
deploy:
runs-on: ubuntu-latest
steps:
# 使用 Gitea 官方镜像加速 Checkout避免连接 GitHub 超时
- name: Checkout
uses: https://gitea.com/actions/checkout@v3
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y sshpass
- name: Deploy to server
env:
HOST: "6.6.6.66"
USER: "quant-speed"
PASS: "123quant-speed"
# 目标目录
TARGET_DIR: "/home/quant-speed/data/dev/ESP32_GDEY042T81_server"
run: |
# 远程执行部署命令
sshpass -p "$PASS" ssh -o StrictHostKeyChecking=no $USER@$HOST "bash -s" <<EOF
# 确保目标目录存在
mkdir -p $TARGET_DIR
cd $TARGET_DIR
# 记录当前 HEAD用于后续 diff
OLD_HEAD=\$(git rev-parse HEAD 2>/dev/null || echo "")
# 拉取最新代码
echo "正在拉取最新代码..."
git pull || { echo "Git pull failed"; exit 1; }
NEW_HEAD=\$(git rev-parse HEAD)
# 检查是否有代码更新
if [ "\$OLD_HEAD" == "\$NEW_HEAD" ]; then
echo "代码没有变化,无需重启"
exit 0
fi
# 检查是否需要重新构建镜像 (Dockerfile 或 requirements.txt 变动)
# 使用 git diff 检查此次 pull 更新的文件列表
if git diff --name-only \$OLD_HEAD \$NEW_HEAD | grep -E 'Dockerfile|requirements.txt'; then
echo "检测到构建文件变动,开始重新构建镜像..."
echo "$PASS" | sudo -S docker compose down --rmi local
# 确保清理干净
echo "$PASS" | sudo -S docker rmi epaper_server:latest || true
echo "$PASS" | sudo -S docker compose up -d --build
else
echo "仅代码变动,无需重新构建镜像,重启容器..."
echo "$PASS" | sudo -S docker compose down
echo "$PASS" | sudo -S docker compose up -d
fi
EOF