From 88c9f2210810a0cf5a6b9eedd6a4d72c509ef9c6 Mon Sep 17 00:00:00 2001 From: dmolinari Date: Tue, 17 Jun 2025 21:37:07 -0300 Subject: [PATCH] Vuelta --- .gitea/workflows/deploy.yml | 53 +++++++++++++++---------------------- 1 file changed, 22 insertions(+), 31 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 4b11a68..5edefef 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -17,40 +17,43 @@ jobs: # 1. Preparar el cliente SSH apt-get update > /dev/null && apt-get install -y openssh-client git > /dev/null mkdir -p ~/.ssh + # Inyectamos el secreto de la clave SSH directamente aquí echo "${{ secrets.PROD_SERVER_SSH_KEY }}" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa ssh-keyscan -H ${{ secrets.PROD_SERVER_HOST }} >> ~/.ssh/known_hosts # 2. Conectarse al HOST y ejecutar todo el proceso allí - ssh ${{ secrets.PROD_SERVER_USER }}@${{ secrets.PROD_SERVER_HOST }} << 'EOF' + # ¡¡CAMBIO CLAVE!! Usamos << EOF sin comillas para permitir la expansión de variables. + ssh ${{ secrets.PROD_SERVER_USER }}@${{ secrets.PROD_SERVER_HOST }} << EOF set -e # --- PARTE 1: PREPARACIÓN (EN EL HOST) --- echo "--- (HOST) Preparing temporary workspace ---" - # Usamos las variables que el runner sí pasa a la sesión remota - TEMP_DIR="/tmp/gitea-build/${GITEA_RUN_ID}" - REPO_NAME=$(echo "$GITEA_REPOSITORY" | tr '[:upper:]' '[:lower:]') - GITEA_REPO_PATH="/var/lib/docker/volumes/gitea-stack_gitea-data/_data/git/repositories/${REPO_NAME}.git" + # Gitea expandirá estas variables ANTES de enviar el script + TEMP_DIR="/tmp/gitea-build/${{ gitea.run_id }}" + REPO_NAME_RAW="${{ gitea.repository }}" + REPO_NAME=\$(echo "\$REPO_NAME_RAW" | tr '[:upper:]' '[:lower:]') + GITEA_REPO_PATH="/var/lib/docker/volumes/gitea-stack_gitea-data/_data/git/repositories/\${REPO_NAME}.git" - git config --global --add safe.directory "$GITEA_REPO_PATH" + git config --global --add safe.directory "\$GITEA_REPO_PATH" - echo "Cloning repository from local path: $GITEA_REPO_PATH" - rm -rf $TEMP_DIR - git clone $GITEA_REPO_PATH $TEMP_DIR - cd $TEMP_DIR - git checkout "$GITEA_SHA" + echo "Cloning repository from local path: \$GITEA_REPO_PATH" + rm -rf \$TEMP_DIR + git clone \$GITEA_REPO_PATH \$TEMP_DIR + cd \$TEMP_DIR + git checkout "${{ gitea.sha }}" # --- PARTE 2: CONSTRUIR IMÁGENES CON KANIKO (EN EL HOST) --- echo "--- (HOST) Building images... ---" - docker run --rm -v "$(pwd)":/workspace gcr.io/kaniko-project/executor:v1.9.0 \ + docker run --rm -v "\$(pwd)":/workspace gcr.io/kaniko-project/executor:v1.9.0 \ --context=/workspace --dockerfile=/workspace/Backend/GestionIntegral.Api/Dockerfile --no-push \ - --destination=${REPO_NAME}-backend:latest --tarPath=/workspace/backend.tar + --destination=\${REPO_NAME}-backend:latest --tarPath=/workspace/backend.tar - docker run --rm -v "$(pwd)":/workspace gcr.io/kaniko-project/executor:v1.9.0 \ + docker run --rm -v "\$(pwd)":/workspace gcr.io/kaniko-project/executor:v1.9.0 \ --context=/workspace --dockerfile=/workspace/Frontend/Dockerfile --no-push \ - --destination=${REPO_NAME}-frontend:latest --tarPath=/workspace/frontend.tar + --destination=\${REPO_NAME}-frontend:latest --tarPath=/workspace/frontend.tar # --- PARTE 3: DESPLEGAR (EN EL HOST) --- echo "--- (HOST) Loading images and deploying... ---" @@ -59,26 +62,14 @@ jobs: docker load < frontend.tar cd /opt/gestion-integral - - # --- ¡¡LA CORRECCIÓN DEFINITIVA ESTÁ AQUÍ!! --- - # 1. Creamos un archivo .env al vuelo con los secretos. - echo "Creating .env file with secrets..." - cat > .env <