From e838081aaebd8a94a758e186b1a9a92da29f9e08 Mon Sep 17 00:00:00 2001 From: Rafael Lopes Date: Wed, 15 Jul 2026 14:01:49 -0300 Subject: [PATCH] FIX: Secret ENV_PRODUCTION colado direto no script bash quebrava com $ dentro do conteudo ${{ secrets.ENV_PRODUCTION }} usado direto dentro de um run: substitui o texto antes do bash rodar - qualquer '$algo' dentro do conteudo do .env.production (por exemplo em senhas) era interpretado como expansao de variavel de shell. Com set -u ligado isso quebrou o step "Check required secrets" (variavel nao definida = erro fatal). Sem set -u, o step "Write .env.production from secret" teria o mesmo problema de forma silenciosa: qualquer '$algo' dentro das credenciais reais seria substituido por vazio no arquivo escrito na VM, corrompendo senha sem nenhum aviso. Corrige passando o secret via env: e referenciando como variavel de ambiente normal ($ENV_PRODUCTION) nos dois steps - bash trata o valor como dado opaco, sem tentar expandir nada dentro dele. --- .gitea/workflows/deploy-production.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/deploy-production.yml b/.gitea/workflows/deploy-production.yml index 3f70458..c87351c 100644 --- a/.gitea/workflows/deploy-production.yml +++ b/.gitea/workflows/deploy-production.yml @@ -29,9 +29,11 @@ jobs: - name: Check required secrets shell: bash + env: + ENV_PRODUCTION: ${{ secrets.ENV_PRODUCTION }} run: | set -euo pipefail - if [ -z "${{ secrets.ENV_PRODUCTION }}" ]; then + if [ -z "${ENV_PRODUCTION:-}" ]; then echo "Missing secret ENV_PRODUCTION. Configure it in Settings > Actions > Secrets before deploying." exit 1 fi @@ -44,11 +46,13 @@ jobs: - name: Write .env.production from secret shell: bash + env: + ENV_PRODUCTION: ${{ secrets.ENV_PRODUCTION }} run: | set -euo pipefail DEPLOY_PATH="${PROD_DEPLOY_PATH:-/opt/sn-glpi-sync-new}" mkdir -p "$DEPLOY_PATH" - printf '%s\n' "${{ secrets.ENV_PRODUCTION }}" > "$DEPLOY_PATH/.env.production" + printf '%s\n' "$ENV_PRODUCTION" > "$DEPLOY_PATH/.env.production" chmod 600 "$DEPLOY_PATH/.env.production" - name: Deploy files and restart PM2