diff --git a/.gitea/workflows/deploy-qa.yml b/.gitea/workflows/deploy-qa.yml index c161716..cc9124d 100644 --- a/.gitea/workflows/deploy-qa.yml +++ b/.gitea/workflows/deploy-qa.yml @@ -65,23 +65,38 @@ jobs: mkdir -p ~/.ssh ssh-keyscan -H ${{ secrets.DEPLOY_HOST }} >> ~/.ssh/known_hosts 2>/dev/null + # 1. Pasamos las variables como argumentos en el mismo orden ssh ${{ secrets.DEPLOY_USERNAME }}@${{ secrets.DEPLOY_HOST }} bash -s \ - -e REGISTRY_URL=${{ env.REGISTRY_URL }} \ - -e IMAGE_NAME=${{ env.IMAGE_NAME }} \ - -e IMAGE_TAG=${IMAGE_TAG} \ - -e GIT_SHA=${{ gitea.sha }} \ - -e GIT_BRANCH=dev \ - -e GITEA_ACTOR=${{ gitea.actor }} \ - -e BUILD_NUMBER=${{ gitea.run_id }} \ - -e TOKEN=${{ secrets.TOKEN }} << 'EOF' + "${{ env.REGISTRY_URL }}" \ + "${{ env.IMAGE_NAME }}" \ + "${IMAGE_TAG}" \ + "${{ gitea.sha }}" \ + "${{ gitea.actor }}" \ + "${{ gitea.run_id }}" \ + "${{ secrets.TOKEN }}" << 'EOF' set -euo pipefail + + # 2. Las recibimos dentro de la sesión remota + REGISTRY_URL=$1 + IMAGE_NAME=$2 + IMAGE_TAG=$3 + GIT_SHA=$4 + GITEA_ACTOR=$5 + BUILD_NUMBER=$6 + TOKEN=$7 + + # Variables locales del script + GIT_BRANCH="dev" BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") + echo "Pulling image..." echo "$TOKEN" | docker login $REGISTRY_URL -u $GITEA_ACTOR --password-stdin docker pull $REGISTRY_URL/$IMAGE_NAME:$IMAGE_TAG + echo "Stopping existing container..." docker stop cicd-qa 2>/dev/null || true docker rm cicd-qa 2>/dev/null || true + echo "Starting new container..." docker run -d --name cicd-qa --restart unless-stopped -p 8081:80 \ -e APP_ENV=qa \ @@ -92,6 +107,7 @@ jobs: -e DEPLOY_TIME=${BUILD_DATE} \ -e BUILD_NUMBER=${BUILD_NUMBER} \ $REGISTRY_URL/$IMAGE_NAME:$IMAGE_TAG + echo "Waiting for health check..." for i in $(seq 1 12); do if curl -sf http://localhost:8081/health > /dev/null 2>&1; then @@ -103,5 +119,3 @@ jobs: echo "::error::QA health check failed" exit 1 EOF - -