fix(ci): 去掉 curl -s,显示完整错误输出;修复 CHANGELOG ### 子标题解析
Deploy / deploy (push) Failing after 43s

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-05-25 21:41:15 +08:00
parent 01946282ed
commit f59bdf056f
3 changed files with 28 additions and 20 deletions
+3 -3
View File
@@ -14,7 +14,7 @@ if [ ! -f dist/jiu-server ] || [ ! -f dist/web.tar.gz ] || [ ! -f dist/configs.t
echo "==> deploy: dist/ incomplete — downloading assets for ${TAG} from Forgejo"
mkdir -p dist
curl -sf \
curl -f \
-H "Authorization: token ${FORGEJO_TOKEN}" \
"${FORGEJO_URL}/api/v1/repos/${GITEA_REPOSITORY}/releases/tags/${TAG}" \
-o /tmp/release-info.json
@@ -99,13 +99,13 @@ cp /tmp/version.yaml /opt/jiu/backend/config/version.yaml
sudo systemctl start jiu
echo "Waiting for health check..."
for i in $(seq 1 30); do
if curl -sf http://localhost:8080/health > /dev/null 2>&1; then
if curl -f http://localhost:8080/health > /dev/null 2>&1; then
echo "Health check passed"
break
fi
sleep 2
done
curl -sf http://localhost:8080/health > /dev/null || { echo "Health check failed!"; exit 1; }
curl -f http://localhost:8080/health > /dev/null || { echo "Health check failed!"; exit 1; }
# Swap Flutter web app (atomic)
rm -rf /opt/jiu/web-old
+1 -1
View File
@@ -16,7 +16,7 @@ fi
MSG="${ICON} 岩美 ${TAG} ${LABEL}
https://jiu.51yanmei.com"
curl -sf -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage" \
curl -f -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage" \
-d "chat_id=${TELEGRAM_CHAT_ID}" \
--data-urlencode "text=${MSG}" \
> /dev/null
+24 -16
View File
@@ -20,7 +20,8 @@ try:
notes = []
for line in lines[1:]:
stripped = line.strip()
if stripped.startswith('#'):
# 只在遇到同级 ## 时停止,### 子标题保留
if stripped.startswith('## '):
break
if stripped:
notes.append(stripped)
@@ -82,30 +83,37 @@ print(json.dumps(body))
PYEOF
)
RESP=$(curl -sf -X POST "${FORGEJO_URL}/api/v1/repos/${GITEA_REPOSITORY}/releases" \
HTTP_CODE=$(curl -w "%{http_code}" -o /tmp/release_resp.json \
-X POST "${FORGEJO_URL}/api/v1/repos/${GITEA_REPOSITORY}/releases" \
-H "Authorization: token ${FORGEJO_TOKEN}" \
-H "Content-Type: application/json" \
-d "{\"tag_name\":\"${TAG}\",\"name\":\"Release ${TAG}\",\"body\":${BODY},\"draft\":false,\"prerelease\":false}")
echo "==> release: API response: ${RESP}"
RESP=$(cat /tmp/release_resp.json)
echo "==> release: API response (HTTP ${HTTP_CODE}): ${RESP}"
if [ "$HTTP_CODE" -lt 200 ] || [ "$HTTP_CODE" -ge 300 ]; then
echo "==> release: FAILED — HTTP ${HTTP_CODE}"
exit 1
fi
RELEASE_ID=$(python3 -c "import sys,json; print(json.load(sys.stdin)['id'])" <<< "${RESP}")
echo "==> release: release_id=${RELEASE_ID}"
# Upload assets
curl -sf -X POST "${FORGEJO_URL}/api/v1/repos/${GITEA_REPOSITORY}/releases/${RELEASE_ID}/assets" \
-H "Authorization: token ${FORGEJO_TOKEN}" \
-F "attachment=@dist/jiu-server"
echo "==> release: uploaded jiu-server"
upload_asset() {
local file="$1"
local code
code=$(curl -w "%{http_code}" -o /tmp/upload_resp.json \
-X POST "${FORGEJO_URL}/api/v1/repos/${GITEA_REPOSITORY}/releases/${RELEASE_ID}/assets" \
-H "Authorization: token ${FORGEJO_TOKEN}" \
-F "attachment=@${file}")
echo "==> release: uploaded ${file} (HTTP ${code}): $(cat /tmp/upload_resp.json)"
if [ "$code" -lt 200 ] || [ "$code" -ge 300 ]; then exit 1; fi
}
curl -sf -X POST "${FORGEJO_URL}/api/v1/repos/${GITEA_REPOSITORY}/releases/${RELEASE_ID}/assets" \
-H "Authorization: token ${FORGEJO_TOKEN}" \
-F "attachment=@dist/web.tar.gz"
echo "==> release: uploaded web.tar.gz"
curl -sf -X POST "${FORGEJO_URL}/api/v1/repos/${GITEA_REPOSITORY}/releases/${RELEASE_ID}/assets" \
-H "Authorization: token ${FORGEJO_TOKEN}" \
-F "attachment=@dist/configs.tar.gz"
echo "==> release: uploaded configs.tar.gz"
upload_asset dist/jiu-server
upload_asset dist/web.tar.gz
upload_asset dist/configs.tar.gz
echo "==> release: done — Release ${TAG} created"