Publica/actualiza un plugin WordPress SVN directamente desde GitHub

Esto lo aprendí recientemente gracias a los directos de Fran Torres explicando de cómo publicar directamente en WordPress SVN.

¿Qué es SVN?

SVN es la abreviatura de Subversion, y es el control de versiones de los repositorios de WordPress como el propio core, y también los plugins. Una vez que hemos enviado el plugin de WordPress y pasado su proceso de revisión, podemos publicar.

Sin conocerlo mucho y lo que he trabajado, es muy tedioso, ya que cada vez que borras un directorio, puedes acabar rompiendo el control de versiones de proyecto. Yo nunca me he terminado de aclarar.

En cambio, con GitHub trabajar es una maravilla, ya que gracias a las ramas, podemos desglosar nuestro desarrollo de forma muy fácil.

Bien, para conectar GitHub con el repositorio de SVN, podemos utilizar las GitHub Actions.

GitHub Actions

Las GitHub Actions como en su página explican, están pensadas para automatizar procesos dentro de la salida a producción de un código de software.

Los flujos de trabajo o workflow se pueden ejecutar en cualquier evento de GitHub. En este caso utilizaremos el evento de creación de una etiqueta. Y cada vez que publicamos una nueva release en GitHub, crea dicha etiqueta y ejecuta el código que envía los archivos a SVN.

Nuestro flujo de trabajo será la creación de una release cada vez que queramos publicar en WordPress.

Configuración GitHub Actions para publicar en WordPress

Para nuestro flujo de trabajo utilizaremos la acción desarrollada por 10up, una agencia dedicada a WordPress, y que ha liberado para que podamos usarla.

github actions wordpress svn

La acción puedes verla en su página de acción GitHub, donde viene toda la documentación para ponerla en marcha. A continuación, os enseñaré mi configuración ideal.

En el origen del repositorio en la rama principal, creamos un archivo YML con la siguiente ruta:

.github/workflows/deploy.yml

Y con el siguiente contenido:

name: Deploy to WordPress.org
on:
  push:
    tags:
    - "*"
jobs:
  tag:
    name: New tag
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@master
    - name: WordPress Plugin Deploy
      uses: 10up/action-wordpress-plugin-deploy@stable
      env:
        SVN_PASSWORD: ${{ secrets.SVN_PASSWORD }}
        SVN_USERNAME: ${{ secrets.SVN_USERNAME }}

Ten en cuenta que este código asume que el SLUG de tu plugin es el mismo que el repositorio de GitHub. Que por otro lado, creo que es lo más adecuado.

Deberemos ir al menú del repositorio para configurar nuestro usuario y contraseña de SVN. Esto es en: Settings > Secrets y añadir SVN_USERNAME y su valor, y SVN_PASSWORD y también su valor.

Y luego para que podamos subir todos los archivos relacionados con el directorio de WordPress, deberemos crear una carpeta:

/.wordpress-org

Con los archivos que queremos compartir, la imágenes del plugin y sus recursos como capturas de pantalla. Esto es:

banner-1544x500.png
banner-772x250.png
icon-128x128.png
icon-256x256.png
screenshot-1.png
screenshot-2.png

En los iconos se puede utilizar también el formato SVG o JPG.

Pues ya tendríamos todo configurado. Ahora cada vez que creamos una release, se ejecutará nuestra acción y publicará en WordPress.org. En la pestaña de Actions, puedes ver el log de cada ejecución.

github actions ejemplos

Como puedes ver, en la primera ejecución obtuve un error, y la forma que hice para solventarlo fue eliminar la release y también el tag, para volver a crear el flujo de trabajo.

Recursos:

    Mentions

  • 💬 Actualidad para profesionales de WordPress (Edición #205) - Enlace Permanente
  • 💬 David
  • 💬 Closemarketing
  • 💬 Roberto Gallego
  • 💬 WordPress Granada
  • 💬 Closemarketing

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

ÚLTIMOS ARTÍCULOS

Cierre Ventana

Hacer un mundo mejor con WordPress

Este pasado fin de semana del 23 de marzo estuve en el evento WordCamp Torrelodones 2024, un congreso…

Cierre Ventana

Linked in Lunch Granada’24

El pasado martes se estrenó en Granada la primera edición de Linked Lunch, un evento basado en desvirtualizar…

Cierre Ventana

Soy parte del Equipo de Revisión Oficial de Plugins de WordPress

TL;DR: Soy parte del equipo de revisión de plugins de WordPress y estoy esponsorizado por Hostinger. ¿Y qué…