fix 部署描述及action部署在未配置变量时输出成功提示

This commit is contained in:
Abner
2025-07-09 19:26:36 +08:00
committed by GitHub
parent db890fba0d
commit f6d4653a47
2 changed files with 20 additions and 5 deletions
+18 -3
View File
@@ -24,6 +24,9 @@ jobs:
JWT_SECRET: ${{ secrets.JWT_SECRET }}
INIT_URL: ${{ secrets.INIT_URL }}
outputs:
deployment_skipped: ${{ steps.deploy.outputs.deployment_skipped }}
steps:
- name: ➡️ Checkout repository
uses: actions/checkout@v4
@@ -41,7 +44,6 @@ jobs:
- name: 📡 Disable wrangler telemetry
working-directory: ./mail-worker
# 使用 -c 指定配置文件
run: npx wrangler telemetry disable -c wrangler-action.toml
- name: 🤫 Set Worker secrets (ignore if already exists)
@@ -64,12 +66,20 @@ jobs:
echo "✨ Secret processing complete."
- name: 🛠️ Prepare Config and Deploy
id: deploy
working-directory: ./mail-worker
run: |
if [ -z "$D1_DATABASE_ID" ] || [ -z "$KV_NAMESPACE_ID" ] || [ -z "$R2_BUCKET_NAME" ]; then
echo "⚠️ Required secrets (D1_DATABASE_ID, KV_NAMESPACE_ID, or R2_BUCKET_NAME) are not set."
echo "🟡 Skipping deployment."
echo "deployment_skipped=true" >> $GITHUB_OUTPUT
exit 0
fi
echo "deployment_skipped=false" >> $GITHUB_OUTPUT
CONFIG_FILE="wrangler-action.toml"
echo "⚙️ Dynamically updating '$CONFIG_FILE' with binding IDs..."
# 确保 sed 命令作用于 wrangler-action.toml 文件
sed -i "s|\${D1_DATABASE_ID}|${D1_DATABASE_ID}|g" "$CONFIG_FILE"
sed -i "s|\${KV_NAMESPACE_ID}|${KV_NAMESPACE_ID}|g" "$CONFIG_FILE"
sed -i "s|\${R2_BUCKET_NAME}|${R2_BUCKET_NAME}|g" "$CONFIG_FILE"
@@ -79,6 +89,7 @@ jobs:
echo "✅ Deployment command executed."
- name: 🗄️ Initialize Database (if INIT_URL is set)
if: steps.deploy.outputs.deployment_skipped == 'false'
run: |
if [ -z "$INIT_URL" ]; then
echo "✅ Deployment successful. INIT_URL not set, skipping initialization."
@@ -105,7 +116,11 @@ jobs:
if: always()
run: |
if [ "${{ job.status }}" == "success" ]; then
echo "🎉🎉🎉 Hooray! Deployment completed successfully! 🎉🎉🎉"
if [ "${{ steps.deploy.outputs.deployment_skipped }}" == "true" ]; then
echo "🟡 Deployment was skipped due to missing configuration."
else
echo "🎉🎉🎉 Hooray! Deployment completed successfully! 🎉🎉🎉"
fi
else
echo "❌❌❌ Oh no! The deployment failed. Please check the logs above for errors. ❌❌❌"
fi
+2 -2
View File
@@ -17,7 +17,7 @@
| `DOMAIN` | ✅ | 您要用于邮件服务的域名(例如 `["xx.xx"],多域名用,分隔` |
| `ADMIN` | ✅ | 您的管理员邮箱地址(例如 `admin@example.com` |
| `JWT_SECRET` | ✅ | 用于生成和验证 JWT 的随机长字符串 |
| `INIT_URL` | ❌ | (可选)部署后用于初始化数据库的 Worker URL |
| `INIT_URL` | ❌ | (可选)部署后用于初始化数据库的 Worker URL(格式参考下述手动初始化) |
---
@@ -34,5 +34,5 @@
2. 复制到 GitHub Secrets 中的 `CLOUDFLARE_ACCOUNT_ID`
**运行工作流**
1. 然后在Action页面手动运行工作流,后续同步上游后会自动部署到 Cloudflare Workers。如未配置 `INIT_URL`,则需要手动访问 `https://你的项目域名/api/init/你的jwt_secret` 进行数据库初始化。
1. 然后在Action页面手动运行工作流,后续同步上游后会自动部署到 Cloudflare Workers。如未配置 `INIT_URL`,则需要手动访问 `https://你的项目域名/api/init/你的jwt_secret` 进行数据库初始化。
2. 自动同步上游可使用bot或者手动点击Sync Upstream按钮。