Cómo implementar un complemento de WordPress de TravisCI a WordPress.org

No a todos les gusta la subversión. Si usa Git para administrar el desarrollo del complemento de WordPress, mantener su repositorio de Git y el repositorio de SVN de WordPress.org sincronizados es tedioso. Afortunadamente, podemos usar el proveedor de implementación de TravisCI para automatizar la implementación de SVN después de las pruebas.

Prerrequisitos

Usted necesita estos antes de seguir adelante:

  1. Cuenta de GitHub
  2. Cuenta travisCI
  3. Código fuente del plugin
  4. WordPress.org plugin SVN repo (Obtiene esto después de la aprobación de la revisión del plugin).

Primer empuje a GitHub

Para poder utilizar TravisCI, tenemos que alojar el repositorio de complementos en GitHub.

Primero, cree un nuevo repositorio en GitHub yendo a esta página y completando el nombre del repositorio.

Luego, vamos a enviar todos los archivos de complementos a Git y enviarlos a este repositorio de GitHub. Recuerda reemplazar la URL remota con la tuya.

$ cd / path / to / plugin / directory $ git init $ git add -A $ git commit -m "first commit" $ git add add origin https://github.com/TangRufus/tutsplus-dpl-demo.git $ git push -u origen maestro

Conectando TravisCI

Conecte su repositorio GitHub con TravisCI accediendo a la página de su cuenta TravisCI y activando su repositorio. Hacer clic Sincronizar cuenta en la esquina superior derecha si su repositorio recién creado no aparece en la lista.

Estás todo listo. Cada vez que presiona nuevas confirmaciones o alguien realiza solicitudes de extracción a GitHub, se activará una compilación en TravisCI.

Primera construcción en TravisCI

TravisCI usa un archivo YAML llamado .travis.yml en la raíz de su repositorio para personalizar las compilaciones. Obtenga más información en el documento de personalización de compilación para ver cómo puede controlar el ciclo de vida de la compilación.

Este es un archivo de configuración básica que le indica a TravisCI que ejecute compilaciones en PHP 7.0 y 7.1. Dado que las pruebas están fuera del alcance de este tutorial, reemplazé los comandos de prueba reales con echo 'probado'

# .travis.yml idioma: php sudo: false php: - 7.0 - 7.1 script: # Ejecute sus pruebas aquí. - echo 'probado' 

Confirma este archivo y empújalo a GitHub. Las construcciones de TravisCI se activarán automáticamente.

$ git add .travis.yml $ git ci -am "Add .travis.yml" $ git push master master

Agregar configuración de proveedor de implementación

Los proveedores de implementación se ejecutan si las pruebas pasaron y los condicionales predefinidos (el en sección) se cumplen. TravisCI proporciona cerca de 40 proveedores de despliegue oficiales. Lamentablemente, ninguno de ellos es compatible con los repositorios de subversión de WordPress.org. Así, hice mi propio proveedor personalizado. Lo puedes encontrar en GitHub y su solicitud de extracción..

Para usarlo, agrega estas líneas al final de .travis.yml.

before_deploy: - mkdir build - cp LICENCIA build - cp README.txt build - cp remove-medium-cross-links.php build deploy: - proveedor: wordpress-plugin edge: fuente: TypistTech / dpl branch: add-wordpress-plugin- implementación en: php: 7.1 etiquetas: true repo: TangRufus / tutsplus-dpl-demo slug: remove-medium-cross-links nombre de usuario: tangrufus contraseña: $ WORDPRESS_ORG_PASSWORD build_dir: build 

Explicación de la configuración

antes_desplegar

los antes_desplegar sección copia tres archivos en el construir directorio que se debe registrar en el repositorio de subversión de WordPress.org. En el mundo real, aquí es donde quieres correr trago o gruñido Tareas para preparar el plugin listo para producción.. 

No copie archivos de prueba o archivos innecesarios en construir como el todo construir El directorio se distribuye a los usuarios y los usuarios no necesitan sus archivos de prueba..

proveedor y borde

Le decimos a TravisCI que instale mi proveedor desde el add-wordpress-plugin-deploy rama https://github.com/TypistTech/dpl. Una vez que la solicitud de extracción se ha fusionado, el borde parte es innecesaria.

en

los en La sección controla si se debe realizar un despliegue. El despliegue se activa solo cuando se cumplen todos los requisitos.

En el ejemplo anterior, implementamos en WordPress.org solo cuando:

  1. es un PHP 7.1 construir
  2. es un commit etiquetado
  3. se desencadena por el repositorio TangRufus / tutsplus-dpl-demo (las solicitudes de forks and pull no desencadenan la implementación)

babosa

La bala del plugin. 

Si la URL de su complemento es https://wordpress.org/plugins/my-awesome-plugin/, entonces mi-impresionante-plugin es la babosa del plugin. 

nombre de usuario

El nombre de usuario de su cuenta de WordPress.org con el que envió el complemento para su revisión..

contraseña

La contraseña de la cuenta de WordPress.org. Nunca guarde esta contraseña en el .travis.yml en texto plano!

En el ejemplo anterior, usamos el $ WORDPRESS_ORG_PASSWORD Variable de entorno, que se puede configurar en el panel web de TravisCI. Escoger Ajustes desde el menú de cog, y haga clic en Añadir en el Variables de entorno sección. Nunca habilite la opción "Mostrar valor en el registro de compilación"!

build_dir

Todo lo que se encuentra en este directorio se enviará al repositorio de subversión de WordPress.org, es decir, se incluirá en el archivo zip descargable.. 

Establecimos esto a construir porque hemos copiado archivos plugin en construir durante antes_desplegar.

Etiquetado

Supongamos que hemos solucionado algunos errores y estamos listos para publicar una nueva versión en WordPress.org.

Estos comandos envían los cambios a la dominar rama pero no desencadenar un despliegue:

$ git add -A $ git commit -am "Corrección de errores" $ git push origin master

Sólo el despliegue de desencadenante de confirmaciones etiquetado:

$ git tag -a 1.0.17 -m "Versión bump 1.0.17" $ git push origin master --tags

Resultados

Regresa a TravisCI y abre el PHP 7.1 registro de compilación Deberías ver un despliegue registrado.

Construyendo dpl gem localmente con la fuente TypistTech / dpl y la rama add-wordpress-plugin-deploy Instalando dependencias de despliegue !!! El soporte de WordPress Plugin es experimental !!! Preparar la implementación Encontrar la configuración para la implementación del complemento de WordPress ... Slug: remove-medium-cross-links Nombre de usuario: tangrufus Contraseña encontrada Crear directorio: crear Directorio de activos: no encontrado Validar la configuración para la implementación del complemento de WordPress ... La configuración se ve bien Ir a la etiqueta deloy: 1.0.17 Limpiando el repositorio de git con 'git stash --all'. Si necesita artefactos de compilación para la implementación, configure 'deploy.skip_cleanup: true'. Consulte https://docs.travis-ci.com/user/deployment/#Upload-Files. / usr / lib / git-core / git-stash: 186: / usr / lib / git-core / git-stash: no se puede crear /home/travis/build/TangRufus/tutsplus-dpl-demo/.git/logs/ refs / stash: directorio inexistente Implementación de la aplicación Revisar https://plugins.svn.wordpress.org/remove-medium-cross-links Compensación / tmp / d20170513-3291-1yh7vqo / trunk ... Eliminando archivos borrados de la subversión ... D / tmp / d20170513-3291-1yh7vqo / trunk Eliminación temporal de troncales y activos (si asset_dir está configurado) Eliminación de tmp / d20170513-3291-1yh7vqo / trunk Revisión confirmada 1656616. Copiando compilación a / tmp / d2017013-3291-1yh7vqo / trunk. / d20170513-3291-1yh7vqo / trunk a /tmp/d20170513-3291-1yh7vqo/tags/1.0.17… Adición de nuevos archivos a la subversión ... A / tmp / d20170 / cc / pc / pc / pc / pc / pc / p20 / pc / pc / d201705 / pc / pc / p20 / pc / p20 / pc / p20 / p2 / p2 / trunk / LICENSE A /tmp/d20170513-3291-1yh7vqo/trunk/README.txt A /tmp/d20170513-3291-1yh7vqo/trunk/remove-medium-cross-links.php A / tmp / d20170513/contactos/peso/transporte/medio-cross-links.php A / tmp / d20170513/contonamiento / vajilla / medios tags / 1.0.17 A /tmp/d20170513-3291-1yh7vqo/tags/1.0.17/LICENSE A / tmp / d20170513-3291-1y h7vqo / tags / 1.0.17 / README.txt A /tmp/d20170513-3291-1yh7vqo/tags/1.0.17/remove-medium-cross-links.php Committing 1.0.17 Adición de tmp / d20170513-3291-1yh7vqo / tags /1.0.17 Adición de tmp / d20170513-3291-1yh7vqo / tags / 1.0.17 / LICENCIA Adición de tmp / d20170513-3291-1yh7vqo / tags / 1.0.17 / README.txt Adición de tmp / d2017513-3291-1yh7vqo / tags / 1.0 / 1.020 .17 / remove-medium-cross-links.php Adición de tmp / d20170513-3291-1yh7vqo / trunk Adición de tmp / d20170513-3291-1yh7vqo / trunk / LICENSE Adición de tmp / d20170513-3291-1yh7vqo / trunk / trunk / READq. /d20170513-3291-1yh7vqo/trunk/remove-medium-cross-links.php Transmisión de datos de archivos ... Revisión comprometida 1656617.

Y en el trac WordPress.org (https://plugins.trac.wordpress.org/browser/):

Advertencias

svn commit Dos veces

Ya que TravisCI viene con una versión antigua de subversión que no juega bien con los subdirectorios, lo hago svn commit dos veces.

El primero svn commit elimina todo lo que hay dentro el maletero. El segundo svn commit copia todo de build_direl maletero.

Experimental

Este proveedor aún es experimental y aún no se ha incorporado al repositorio oficial de TravisCI. Puede realizar un seguimiento de los comentarios de TravisCI en su solicitud de extracción.

Utilizando borde no fusiona mi rama en el maestro ascendente. Existe la posibilidad de que mi sucursal esté detrás del repositorio oficial. Cuando suceda, puede bifurcar mi sucursal y volver a cambiarla, y luego cambiar fuente en .travis.yml a tu repositorio GitHub.

Terminando

Para usar este proveedor de despliegue:

  1. Alojar el repositorio de complementos en GitHub.
  2. Conecta GitHub y TravisCI.
  3. Agregue la configuración a .travis.yml.
  4. Empujar una etiqueta.

Espero que todo lo anterior le ayude a implementar complementos a WordPress.org más rápido. 

WordPress tiene una economía increíblemente activa. Hay temas, complementos, bibliotecas y muchos otros productos que lo ayudan a desarrollar su sitio y proyecto. La naturaleza de código abierto de la plataforma también lo convierte en una excelente opción para que pueda mejorar sus habilidades de programación. En cualquier caso, puede ver todo lo que tenemos disponible en Envato Marketplace..

Gracias por leer!