mirror of
https://github.com/schroinerxy/cloud-mail.git
synced 2026-06-21 19:35:50 +08:00
fix 部署描述及action部署在未配置变量时输出成功提示
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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按钮。
|
||||
Reference in New Issue
Block a user