name: Compilar y subir al Servidor on: push: branches: - main paths: - 'package.json' jobs: check-version-and-deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 with: fetch-depth: 2 - name: Obtener versión del package.json run: | git show HEAD:package.json > current_package.json git show HEAD~1:package.json > previous_package.json - name: Compara versiones del proyecto id: compare_versions run: | current_version=$(jq -r .version current_package.json) previous_version=$(jq -r .version previous_package.json) if [ "$current_version" != "$previous_version" ]; then echo "Versión cambiada de $previous_version a $current_version" echo "version_changed=true" >> $GITHUB_OUTPUT else echo "La versión no ha cambiado" echo "version_changed=false" >> $GITHUB_OUTPUT fi - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: '22' # Ajusta a la versión de Node.js que necesites - name: Instalar Dependencias run: npm ci - name: Compilar run: npm run build - name: Instalar ssh run: sudo apt-get install sshpass - name: Subir al servidor env: SERVER_IP: ${{ secrets.SERVER_IP }} SERVER_USER: ${{ secrets.SERVER_USER }} SERVER_PASS: ${{ secrets.SERVER_PASS }} DEPLOY_PATH: ${{ secrets.DEPLOY_PATH }} run: | # Borra la copia anterior sshpass -p $SERVER_PASS ssh -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "rm -rf $DEPLOY_PATH/*" # Sube la nueva versión sshpass -p $SERVER_PASS scp -o StrictHostKeyChecking=no -r dist/* $SERVER_USER@$SERVER_IP:$DEPLOY_PATH