From 2da8aec16f04720b479c940be00b664100b45503 Mon Sep 17 00:00:00 2001 From: nap0o Date: Wed, 25 Feb 2026 10:35:09 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DGithub=20Actions?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=8C=96=E9=83=A8=E7=BD=B2=E5=9B=A0secrets?= =?UTF-8?q?=E5=8F=98=E9=87=8F=E5=88=A4=E6=96=AD=E4=B8=8D=E4=B8=A5=E8=B0=A8?= =?UTF-8?q?=E7=9A=84=E5=AF=BC=E8=87=B4=E9=83=A8=E7=BD=B2=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yml | 51 ++++++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 14 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 498e32d..e611e12 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -54,6 +54,42 @@ jobs: workingDirectory: 'backend' command: d1 execute ${{ secrets.CLOUDFLARE_D1_DATABASE_NAME || '2fauth-db' }} --remote --file=schema.sql + # 动态生成 Secrets 列表 (仅包含已配置的变量) + - name: Generate Secret List + id: secret_list + env: + OAUTH_GITHUB_CLIENT_ID: ${{ secrets.OAUTH_GITHUB_CLIENT_ID }} + OAUTH_GITHUB_CLIENT_SECRET: ${{ secrets.OAUTH_GITHUB_CLIENT_SECRET }} + OAUTH_GITHUB_REDIRECT_URI: ${{ secrets.OAUTH_GITHUB_REDIRECT_URI }} + OAUTH_CLOUDFLARE_CLIENT_ID: ${{ secrets.OAUTH_CLOUDFLARE_CLIENT_ID }} + OAUTH_CLOUDFLARE_CLIENT_SECRET: ${{ secrets.OAUTH_CLOUDFLARE_CLIENT_SECRET }} + OAUTH_CLOUDFLARE_ORG_DOMAIN: ${{ secrets.OAUTH_CLOUDFLARE_ORG_DOMAIN }} + OAUTH_CLOUDFLARE_REDIRECT_URI: ${{ secrets.OAUTH_CLOUDFLARE_REDIRECT_URI }} + OAUTH_NODELOC_CLIENT_ID: ${{ secrets.OAUTH_NODELOC_CLIENT_ID }} + OAUTH_NODELOC_CLIENT_SECRET: ${{ secrets.OAUTH_NODELOC_CLIENT_SECRET }} + OAUTH_NODELOC_REDIRECT_URI: ${{ secrets.OAUTH_NODELOC_REDIRECT_URI }} + run: | + SECRETS="OAUTH_ALLOWED_USERS + ENCRYPTION_KEY + JWT_SECRET" + + OPTIONAL_VARS=( + "OAUTH_GITHUB_CLIENT_ID" "OAUTH_GITHUB_CLIENT_SECRET" "OAUTH_GITHUB_REDIRECT_URI" + "OAUTH_CLOUDFLARE_CLIENT_ID" "OAUTH_CLOUDFLARE_CLIENT_SECRET" "OAUTH_CLOUDFLARE_ORG_DOMAIN" "OAUTH_CLOUDFLARE_REDIRECT_URI" + "OAUTH_NODELOC_CLIENT_ID" "OAUTH_NODELOC_CLIENT_SECRET" "OAUTH_NODELOC_REDIRECT_URI" + ) + + for VAR in "${OPTIONAL_VARS[@]}"; do + if [ -n "${!VAR}" ]; then + SECRETS="$SECRETS + $VAR" + fi + done + + echo "secrets<> $GITHUB_OUTPUT + echo "$SECRETS" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT + # 部署到 Cloudflare Workers - name: Deploy to Cloudflare Workers uses: cloudflare/wrangler-action@v3 @@ -62,20 +98,7 @@ jobs: accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} workingDirectory: 'backend' command: deploy --minify - secrets: | - OAUTH_ALLOWED_USERS - OAUTH_GITHUB_CLIENT_ID - OAUTH_GITHUB_CLIENT_SECRET - OAUTH_GITHUB_REDIRECT_URI - OAUTH_CLOUDFLARE_CLIENT_ID - OAUTH_CLOUDFLARE_CLIENT_SECRET - OAUTH_CLOUDFLARE_ORG_DOMAIN - OAUTH_CLOUDFLARE_REDIRECT_URI - OAUTH_NODELOC_CLIENT_ID - OAUTH_NODELOC_CLIENT_SECRET - OAUTH_NODELOC_REDIRECT_URI - ENCRYPTION_KEY - JWT_SECRET + secrets: ${{ steps.secret_list.outputs.secrets }} env: OAUTH_ALLOWED_USERS: ${{ secrets.OAUTH_ALLOWED_USERS }} OAUTH_GITHUB_CLIENT_ID: ${{ secrets.OAUTH_GITHUB_CLIENT_ID }}