ci: restore automatic database creation

This reverts commit edba6b80d3.
This commit is contained in:
eoao
2026-05-12 21:55:00 +08:00
parent a84b2ae469
commit 80a0cb65a5

View File

@@ -145,12 +145,36 @@ jobs:
CONFIG_FILE="wrangler-action.toml"
if [ -z "$KV_NAMESPACE_ID" ]; then
echo "❌ KV_NAMESPACE_ID variable cannot be empty."
if [ -n "$KV_NAMESPACE_ID" ]; then
sed -i "s|\${KV_NAMESPACE_ID}|${KV_NAMESPACE_ID}|g" "$CONFIG_FILE"
echo "✅ Using the database from environment variables."
exit 0
fi
echo "🔍 Checking if the database exists..."
set +e
KV_LIST=$(pnpm wrangler kv namespace list 2>&1)
STATUS=$?
set -e
if [ $STATUS -ne 0 ]; then
echo "$KV_LIST"
exit 1
fi
sed -i "s|\${KV_NAMESPACE_ID}|${KV_NAMESPACE_ID}|g" "$CONFIG_FILE"
if echo "$KV_LIST" | jq -e ".[] | select(.title == \"$NAME\")" >/dev/null; then
echo "✅ Database $NAME already exists."
KV_ID=$(echo "$KV_LIST" | jq -r ".[] | select(.title == \"$NAME\") | .id")
echo "KV_NAMESPACE_ID: $KV_ID"
else
echo "⚠️ Database $NAME does not exist. Starting creation..."
pnpm wrangler kv namespace create $NAME
KV_LIST=$(pnpm wrangler kv namespace list)
KV_ID=$(echo "$KV_LIST" | jq -r ".[] | select(.title == \"$NAME\") | .id")
fi
sed -i "s|\${KV_NAMESPACE_ID}|$KV_ID|g" "$CONFIG_FILE"
echo "✅ Setup completed."
- name: 🐬 设置D1数据库 / Set up D1 database
@@ -159,12 +183,36 @@ jobs:
CONFIG_FILE="wrangler-action.toml"
if [ -z "$D1_DATABASE_ID" ]; then
echo "❌ D1_DATABASE_ID variable cannot be empty."
if [ -n "$D1_DATABASE_ID" ]; then
sed -i "s|\${D1_DATABASE_ID}|${D1_DATABASE_ID}|g" "$CONFIG_FILE"
echo "✅ Using the database from environment variables."
exit 0
fi
echo "🔍 Checking if the database exists..."
set +e
DB_LIST=$(pnpm wrangler d1 list --json 2>&1)
STATUS=$?
set -e
if [ $STATUS -ne 0 ]; then
echo "$DB_LIST"
exit 1
fi
sed -i "s|\${D1_DATABASE_ID}|${D1_DATABASE_ID}|g" "$CONFIG_FILE"
if echo "$DB_LIST" | jq -e ".[] | select(.name == \"$NAME\")" >/dev/null; then
echo "✅ Database $NAME already exists."
D1_ID=$(echo "$DB_LIST" | jq -r ".[] | select(.name == \"$NAME\") | .uuid")
echo "D1_DATABASE_ID: $D1_ID"
else
echo "⚠️ Database $NAME does not exist. Starting creation..."
pnpm wrangler d1 create $NAME
DB_LIST=$(pnpm wrangler d1 list --json)
D1_ID=$(echo "$DB_LIST" | jq -r ".[] | select(.name == \"$NAME\") | .uuid")
fi
sed -i "s|\${D1_DATABASE_ID}|$D1_ID|g" "$CONFIG_FILE"
echo "✅ Setup completed."
- name: 🚀 开始部署 / Start deployment