b9f89f6526
新增 Gitea Actions 流水线,复刻本地 deploy.sh 到 CI,打 v* tag 即自动发版: - .gitea/workflows/deploy.yml:v*.*.* tag 触发 → go test → 交叉编译 linux/amd64 → 传 ali → 备份 payd.bak → 切换 → systemctl restart pay → 探活(失败自动回滚) - .gitea/workflows/checks.yml:PR/合并 main 跑 go vet+build+test 静态闸 - scripts/ci/deploy.sh:本地 deploy.sh 的 CI 版(从 secret 注入部署私钥 + 主机, 不用 ~/.ssh 的 ali 别名);notify.sh:Telegram 通知(secrets 未配则静默跳过) - runs-on mac,复用 jiu 的自建 runner;业务密钥仍走 ali /etc/pay/pay.env - README 部署段补 CI 路径 + 所需 secrets(ALI_SSH_KEY/ALI_HOST/ALI_USER) 首次需在 pay 仓 Gitea → Settings → Actions → Secrets 配 3 个 ALI_* secret。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019UQmqWmV67sXGLrb3U1XXn
29 lines
805 B
Bash
Executable File
29 lines
805 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# notify.sh <tag> <status> — 发 Telegram 发布通知。secrets 未配则静默跳过
|
|
# (所以没设 TELEGRAM_* 也不会让流水线失败)。
|
|
set -euo pipefail
|
|
|
|
TAG="${1:-}"
|
|
STATUS="${2:-}"
|
|
|
|
if [ -z "${TELEGRAM_TOKEN:-}" ] || [ -z "${TELEGRAM_CHAT_ID:-}" ]; then
|
|
echo "==> notify: 未配 TELEGRAM_* secrets,跳过"
|
|
exit 0
|
|
fi
|
|
|
|
if [ "$STATUS" = "success" ]; then
|
|
ICON="✅"; LABEL="发布成功"
|
|
else
|
|
ICON="❌"; LABEL="发布失败"
|
|
fi
|
|
|
|
MSG="${ICON} pay ${TAG} ${LABEL}
|
|
https://pay.51yanmei.com"
|
|
|
|
curl -f -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage" \
|
|
-d "chat_id=${TELEGRAM_CHAT_ID}" \
|
|
--data-urlencode "text=${MSG}" \
|
|
> /dev/null || echo "==> notify: 发送失败(忽略,不阻断流水线)"
|
|
|
|
echo "==> notify: done (${STATUS})"
|