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.
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.
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:
- Plugin con la acción publicada: WooCommerce ES.
- Acción 10up para publicar en WordPress SVN.
- Recursos de imágenes del repositorio de WordPress.
Mentions