diff --git a/.gitea/workflows/main.yml b/.gitea/workflows/main.yml index bf57812..97b6042 100644 --- a/.gitea/workflows/main.yml +++ b/.gitea/workflows/main.yml @@ -4,11 +4,9 @@ on: workflow_call: inputs: build-run-id: - description: 'ID da execução que gerou o artefato' required: true type: string artifact-name: - description: 'Nome do artefato' required: true type: string secrets: @@ -38,32 +36,30 @@ jobs: password: ${{ secrets.NODE3_PASSWORD }} steps: - - name: 🔍 Verificar Sanidade - run: | - echo "SHA do commit: ${{ github.sha }}" - if [ -z "${{ matrix.password }}" ]; then - echo "❌ ERRO: A secret para ${{ matrix.node_name }} chegou VAZIA!" - exit 1 - fi - - name: 📥 Baixar artefatos uses: actions/download-artifact@v3 with: name: ${{ inputs.artifact-name }} path: ./builds - - name: 🚀 Deploy para ${{ matrix.node_name }} (${{ matrix.host }}) + - name: 🚀 Deploy para ${{ matrix.node_name }} shell: bash run: | - set -x + set -e shopt -s globstar + + # Verificação silenciosa de senha + if [ -z "${{ matrix.password }}" ]; then + echo "❌ ERRO: Password para ${{ matrix.node_name }} não configurada." + exit 1 + fi - # Tenta instalar sshpass (se não for root, vai falhar, mas seu runner parece ser root) + # Instalação silenciosa do sshpass if ! command -v sshpass &> /dev/null; then - apt-get update && apt-get install -y sshpass || apt install -y sshpass + apt-get update -qq && apt-get install -y -qq sshpass &> /dev/null fi - echo "🔧 Criando diretório temporário remoto..." + echo "🔧 [${{ matrix.node_name }}] Preparando ambiente..." sshpass -p "${{ matrix.password }}" \ ssh -o StrictHostKeyChecking=no -p ${{ matrix.port }} \ root@${{ matrix.host }} "mkdir -p ${{ env.REMOTE_TMP_DIR }}" @@ -73,28 +69,26 @@ jobs: PLUGIN_NAME=$(basename "$jar_file") REMOTE_JAR_PATH="${{ env.REMOTE_TMP_DIR }}/${PLUGIN_NAME}" - echo "📤 Enviando ${PLUGIN_NAME}..." + echo "📤 [${{ matrix.node_name }}] Enviando: ${PLUGIN_NAME}" sshpass -p "${{ matrix.password }}" \ sftp -o StrictHostKeyChecking=no -P ${{ matrix.port }} \ - root@${{ matrix.host }} < /dev/null put "${jar_file}" "${REMOTE_JAR_PATH}" bye EOF - echo "🔐 Atualizando containers e reiniciando..." + echo "🔐 [${{ matrix.node_name }}] Atualizando containers..." sshpass -p "${{ matrix.password }}" \ ssh -o StrictHostKeyChecking=no -p ${{ matrix.port }} \ root@${{ matrix.host }} " - set -ex find '${{ env.PTERO_VOLUME_PATH }}' -type f -path '*/plugins/${PLUGIN_NAME}' | while read -r plugin_path; do - echo \"-> Atualizando em: \${plugin_path}\" + echo \" -> Atualizando: \${plugin_path}\" cp '${REMOTE_JAR_PATH}' \"\${plugin_path}\" server_id=\$(echo \"\${plugin_path}\" | cut -d'/' -f6) - echo \"-> Reiniciando container: \${server_id}\" - docker container restart \"\${server_id}\" || true + docker container restart \"\${server_id}\" &> /dev/null || true done rm -f '${REMOTE_JAR_PATH}' " fi done - echo "🌟 Node ${{ matrix.host }} finalizado!" \ No newline at end of file + echo "✅ [${{ matrix.node_name }}] Concluído!" \ No newline at end of file