10 de mayo de 2020
Hoy en día estándar de facto para el control de versiones es Git, los desarrolladores nos sentimos cómodos utilizándolo y han surgido un montón de herramientas alrededor de Git, como puede ser Github.
Pero Git no es único sistema de control de también tenemos, por ejemplo, subversion, también conocido por su abreviatura SVN, que es el que WordPress para publicar y actualizar plugins en su directorio oficial.
Subversion no está pensado para ir haciendo pequeños cambios, o guardar nuestro entorno de desarrollo, con lo que, personalmente prefiero utilizar Git.
Existen varias opciones para conectar nuestro Github con el repositorio oficial, pero desde mi experiencia, la mejor es utilizando Github actions
Para utilizar una Github action lo primero que tenemos que hacer es crear un workflow en nuestro repositorio, para ello, creamos una carpeta .github y dentro una llamada workflows, aquí es donde añadiremos nuestra action, el nombre no es importante pero viene bien para diferenciarlas ya que podemos tener varias actions, por ejemplo la llamaremos deploy.yml.
Las actions se escriben en formato yaml, y es donde definimos, cuándo se va ha ejecutar y qué tiene que ejecutar. En este caso vamos a utilizar una actions llamada WordPress Plugin Deploy
En el fichero especificamos que cuando hacemos un push de una nueva tag, ejecute la action de checkout a master y después la action de publicar en el directorio de WordPress, como bien indica en la documentación de la action, necesitamos pasarle el slug de nuestro plugin y el usuario y contraseña de WordPress.org
El usuario y contraseña lo añadimos desde los settings > secrets de nuestro repositorio, siempre es mejor trabajar con las contraseñas ocultas en nuestros repositorios
También necesitamos publicar los screenshots, el banner y el logo de nuestro plugin, para ello creamos una carpeta llamada .wordpress-org y metemos dentro nuestro assets, el formato y nombre de los archivos, tienen que seguir las indicaciones de WordPress.org https://developer.wordpress.org/plugins/wordpress-org/plugin-assets/
WordPress nos avisa en la documentación oficial que no subamos al repositorio oficial archivos que no son imprescindibles para el funcionamiento del plugin, como por ejemplo el archivo .gitignore.
Para ello creamos un archivo llamado .distignore donde incluiremos los archivos y directorio que no queremos enviar al directorio oficial.
Ya tenemos todos los ingredientes preparados, ahora, cuando creemos un nuevo tag en nuestro repositorio Git, lazará la Github action y se publicará nuestro plugin.
Para ello hacemos un commit de los cambios, creamos una nueva tag, por ejemplo git tag v1.0 y publicamos los cambios git push -tags para publicar nuestro tag
Podemos seguir el proceso desde la solapa Actions, donde nos informará se produce algún error o todo funciona correctamente