Publicar a Maven Central #11
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Publicar a Maven Central | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| release_notes: | |
| description: 'Notas de la versión' | |
| required: false | |
| default: 'Nueva versión de la biblioteca FiscalAPI' | |
| jobs: | |
| publish: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout del código | |
| uses: actions/checkout@v3 | |
| with: | |
| ref: ${{ github.ref_name }} | |
| - name: Configurar Java | |
| uses: actions/setup-java@v3 | |
| with: | |
| java-version: '8' | |
| distribution: 'temurin' | |
| cache: maven | |
| - name: Extraer versión del POM | |
| id: get_version | |
| run: | | |
| VERSION=$(grep -m 1 "<version>" pom.xml | sed 's/<version>//g' | sed 's/<\/version>//g' | xargs) | |
| echo "Versión extraída del POM: $VERSION" | |
| echo "version=$VERSION" >> $GITHUB_OUTPUT | |
| - name: Configurar GPG | |
| run: | | |
| # Crear directorio para las claves GPG | |
| mkdir -p ~/.gnupg/ | |
| chmod 700 ~/.gnupg/ | |
| # Importar claves GPG | |
| echo "${{ secrets.GPG_PUBLIC_KEY }}" | gpg --import | |
| echo "${{ secrets.GPG_SECRET_KEY }}" | gpg --import --no-tty --batch --yes | |
| # Verificar que las claves se hayan importado correctamente | |
| gpg --list-secret-keys --keyid-format LONG | |
| - name: Verificar settings.xml | |
| run: | | |
| if [ -f "settings.xml" ]; then | |
| echo "El archivo settings.xml existe." | |
| else | |
| echo "Error: No se encontró el archivo settings.xml" | |
| exit 1 | |
| fi | |
| - name: Desplegar a Maven Central | |
| env: | |
| MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} | |
| MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} | |
| GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} | |
| run: | | |
| mvn clean deploy -P release --settings settings.xml -DskipTests=true | |
| - name: Notificar resultado | |
| if: always() | |
| run: | | |
| VERSION="${{ steps.get_version.outputs.version }}" | |
| if [ "${{ job.status }}" == "success" ]; then | |
| echo "✅ Biblioteca publicada exitosamente en Maven Central" | |
| echo "La biblioteca debería estar disponible pronto en: https://central.sonatype.com/artifact/com.fiscalapi/fiscalapi/$VERSION" | |
| else | |
| echo "❌ Error al publicar la biblioteca" | |
| echo "Por favor, revisa los logs para más detalles." | |
| fi |