From 0ccce78e4935c35778f72d3f39ae7607a82db069 Mon Sep 17 00:00:00 2001 From: kjh2064 Date: Sun, 5 Jul 2026 18:48:18 +0900 Subject: [PATCH] fix(ci): dynamically inject appsettings.Production.json with actual DB password into publish artifact to resolve DB authentication failures --- .gitea/workflows/deploy-prod.yml | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/deploy-prod.yml b/.gitea/workflows/deploy-prod.yml index e72d401..cf94bb4 100644 --- a/.gitea/workflows/deploy-prod.yml +++ b/.gitea/workflows/deploy-prod.yml @@ -141,10 +141,10 @@ jobs: run: | echo "πŸ”§ Preparing database environment..." - # QUANTENGINE_DB_PASSWORD: λ―Έμ„€μ • μ‹œ 빈 λ¬Έμžμ—΄λ‘œ 처리 (pg_hba.conf trust λͺ¨λ“œ λŒ€μ‘) + # QUANTENGINE_DB_PASSWORD: λ―Έμ„€μ • μ‹œ 빈 λ¬Έμžμ—΄λ‘œ 처리 DB_PASSWORD="${{ secrets.QUANTENGINE_DB_PASSWORD }}" if [ -z "$DB_PASSWORD" ]; then - echo "⚠️ QUANTENGINE_DB_PASSWORD not set β€” using empty password (trust auth mode)" + echo "⚠️ QUANTENGINE_DB_PASSWORD not set β€” using empty password" fi if [ -z "${{ env.QUANTENGINE_DB_NAME }}" ] || [ -z "${{ env.QUANTENGINE_DB_USER }}" ]; then @@ -152,7 +152,7 @@ jobs: exit 1 fi - # ν™˜κ²½ 파일 생성 + # 1) ν™˜κ²½ 파일 생성 (.env) mkdir -p ./deploy printf 'ConnectionStrings__DefaultConnection=Host=127.0.0.1;Database=%s;Username=%s;Password=%s;Search Path=quantengine;\n' \ "${{ env.QUANTENGINE_DB_NAME }}" \ @@ -160,13 +160,24 @@ jobs: "$DB_PASSWORD" > ./deploy/quantengine.env chmod 600 ./deploy/quantengine.env + # 2) appsettings.Production.json 파일 동적 생성 및 배포 배포 폴더(publish) 반영 + mkdir -p ./publish + cat < ./publish/appsettings.Production.json + { + "ConnectionStrings": { + "DefaultConnection": "Host=127.0.0.1;Database=${{ env.QUANTENGINE_DB_NAME }};Username=${{ env.QUANTENGINE_DB_USER }};Password=${DB_PASSWORD};Search Path=quantengine;" + } + } + EOF + chmod 600 ./publish/appsettings.Production.json + # 파일 검증 - if [ ! -f ./deploy/quantengine.env ]; then - echo "❌ Failed to create database config file" + if [ ! -f ./deploy/quantengine.env ] || [ ! -f ./publish/appsettings.Production.json ]; then + echo "❌ Failed to create database config files" exit 1 fi - echo "βœ“ Database configuration prepared" + echo "βœ“ Database configuration prepared (env and appsettings.Production.json)" - name: Package Artifact run: |