Publicación automática en el repositorio oficial de WordPress
10/03/2020
Para empezar, es necesario saber que el repositorio oficial de WordPress es un repositorio Subversion, un sistema de control de versiones que actualmente carece de popularidad, por lo que a mi, como a tantos otros desarrolladores nos resulta incomodo.
Por otra parte esta Git, otro sistema de control de versiones, con el cual me siento como pez en el agua y GitHub es un repositorio bastante popular, que nos permite almacenar/publicar nuestro código.
Bueno este articulo va de como hacer que GitHub se encargue de la parte fea y publique nuestro código en el repositorio oficial de WordPress de forma automática.
El proceso
- La primera vez que publicamos en el repositorio oficial de WordPress, es mediante un archivo .zip que subimos en un formulario. Si todo sale bien, nos generan un repositorio SVN y nos dan acceso al mismo.
- En GitHub
- Creamos el repositorio
- En Settings -> Secrets agregamos las variables SVN_PASSWORD y SVN_USERNAME
- En nuestro fuente
- Creamos el archivo .github/workflows/wordpress-plugin-deploy.yml
- Creamos la carpeta .wordpress-org, con los archivos que anteriormente teníamos en la carpeta «assets»
- Opcionalmente podemos crear el archivo .gitattributes con los archivos que no deseamos publicar.
- Ahora tenemos que subir todo a GitHub
git commit -a -m "Primer commit"
git push -u origin master
Este paso es necesario para que en el próximo push, GitHub ejecute el los comandos que publicamos en .github/workflows/wordpress-plugin-deploy.yml - A partir de ahora el proceso es siempre el mismo, modificamos, generamos un nuevo release y volver a subir a GitHub
git flow release start 0.0.1
Es en este punto donde no debemos olvidar de actualizar el readme.txt ni el número de versiongit commit -a -m "Nueva version 0.0.1
«git flow release finish '0.0.1'
git push --tags -u origin master
Nota: Es necesario subir las etiquetas ya que el comando solo se ejecuta bajo esta condición. Por otra parte personalmente utilizo git flow para agilizar todo el asunto.
Referencias
- https://github.com/10up/action-wordpress-plugin-deploy/tree/master
- https://ahmadawais.com/wp-continuous-deployment/
- https://github.com/ahmadawais/wp-continuous-deployment
- Ahmad Awais Launches Script to Automatically Deploy WordPress Plugin Updates
- https://wordpress.tv/2019/11/11/bernhard-kau-automated-deployments-for-plugins-with-github-actions/