Procedimiento para compilar y adjuntar archivos nvda-addon a Releases (liberaciones) en GitHub
Este método se puede usar para automatizar la compilación de complementos de NVDA (binarios con la extensión .nvda-addon), los cuales van a ser subidos luego a Github y añadidos como adjuntos a la release (liberación) creada..
Funciona para complementos basados en la Plantilla para complementos.
Configurando AppVeyor para complementos
-
Consigue el código de un complemento.
Ejemplo:
«`
git clone https://github.com/nombreusuario/repo
git pull
«`
2. En la raíz de la carpeta del complemento (la misma en la que está el archivo sconstruct), pega este archivo de configuración de AppVeyor (appveyor.yml). -
Si no tienes ya uno, crea un token personal de acceso a la API de GitHub y cífralo.
Nota: podría ser necesario configurar los siguientes ámbitos de token para evitar inconvenientes al publicar tags:- notifications
- public_repo
- repo:status
- repo_deployment
-
En el archivo appveyor.yml, reemplaza el valor proporcionado para la clave segura por tu token cifrado. Por ejemplo, en lugar de
auth_token:
secure: 3yxF2EQ/wfLKNEobcRfdNL6srjXjoMdRa/LSQ7z2PJNqOL3IEyiFtlnxxHeIQskH
auth_token:
secure: tuTokenCifrado
Ahora puedes publicar el archivo appveyor.yml en cualquier repositorio de complemento en tu cuenta de GitHub. - Inicia sesión en AppVeyor.
- En AppVeyor, selecciona New Project (Nuevo Proyecto). (Si es necesario, elige GitHub y autorízalo).
- Localiza el nombre del repo en el que estás interesado, mueve el ratón sobre él (por ejemplo presionando NVDA+DividirBloqueNumérico o NVDA+shift+m), y activa el enlace «Añadir» debajo.
Liberando
Para publicar una nueva versión de un complemento, puedes crear una etiqueta y enviarla a GitHub:
Ejemplo
git tag 1.0
git push origin 1.0
Entonces la release (versión) se creará y binario-1.0.nvda-addon se añadirá como adjunto a ella en GitHub.
Pista extra: además, Abdel ha creado un archivo appveyorForFTP.yml para publicar utilizando un servidor FTP.
Entorno de despliegue personal
En el ejmplo anterior, hemos descrito cómo introducir la clave cifrada de tu token personal de GitHub en el archivo appveyor.yml.
Si quieres conservar esta clave personal sin compartirla en tu repositorio, puedes crear un entorno de despliegue personal.
Para ello, ve a tu página de entorno de Appveyor y pulsa sobre el enlace «New environment».
Una vez en la página de creación de nuevo entorno, describimos a continuación el procedimiento para crear un despliegue para GitHub, así como un despliegue FTP:
Creación de un entorno de despliegue personal para GitHub
Para crear un entorno de despliegue personal para GitHub, deberías elegir las siguientes opciones.
La variable de entorno $(REPO_NAME) usada en la descripción de la liberación se creó en la sección before_deploy de este archivo de configuración appveyor.yml.
Debes usar este entorno de despliegue personal con su archivo de configuración apropiado para que se pueda reconocer el nombre del complemento en la descripción.
- Provider: GitHub Releases
- Environment name: GitHub_deployment
- Tag name: $(APPVEYOR_REPO_TAG_NAME)
- Release name: Release $(APPVEYOR_REPO_TAG_NAME)
- Release description: This is the release $(APPVEYOR_REPO_TAG_NAME) of the $(REPO_NAME) addon for the NVDA screen reader built and uploaded to GitHub using Appveyor.
- GitHub authentication token: Tu token personal de GitHub. (Advertencia: se trata de tu token personal de GitHub, no tu clave cifrada con Appveyor)
- Repository name: Se deja vacío, este campo es opcional
- Artifact(s) to deploy: addon
Con esto hecho, valida y envía el formulario pulsando el botón «Add environment».
Creación de un entorno de despliegue personal para FTP
Para crear un entorno de despliegue personal para FTP, deberías elegir las siguientes opciones:
- Provider: FTP
- Environment name: ftp_deployment
- Protocol: FTP
- Host: Tu servidor.
- Active mode: Se deja vacío, este campo es opcional
- Username: Tu nombre de usuario
- Password: Tu contraseña
- Remote folder: El nombre de la carpeta que contendrá el complemento en tu servidor FTP. (Puede ser algo como /nvda-addons o /add-ons)
- Artifact(s): addon
- Application: Se deja vacío, este campo es opcional
- Use alternative FTP library (beta): Se deja vacío, este campo es opcional
Con esto hecho, valida y envía el formulario pulsando el botón «Add environment».
Añadir la sección de despliegue para entornos personales
Una vez se haya añadido tu entorno personal, tendrás que agregar la siguiente sección de despliegue a tu archivo appveyor.yml, mencionando sólo el nombre que hayas elegido para tu entorno
-
Para el despliegue en GitHub:
deploy:
- provider: Environment
name: GitHub_deployment
on:
APPVEYOR_REPO_TAG: true
Ejemplo de archivo de configuración de Appveyor para un entorno de despliegue personal en GitHub
2. Para el despliegue FTP:
deploy:
- provider: Environment
name: ftp_deployment
on:
APPVEYOR_REPO_TAG: true
Ejemplo de archivo de configuración de Appveyor para un entorno de despliegue personal en FTP
Procedimiento para recibir notificaciones sobre los commits
Para las notificaciones sobre eventos push (recomendadas a la hora de revisar complementos), visita:
https://github.com/nvdaaddons/nvdaaddons.github.io/wiki/githubWebhooks
En cualquier caso, si quieres usar AppVeyor:
- Crea una dirección de correo para recibir notificaciones. Por ejemplo, puedes usar la integración de correo electrónico de groups.io.
-
En el archivo appveyor.impl, añade las siguientes líneas:
«`
notifications:
– provider: Email
to:
– notificationsEmailAddress.example.com
«`
Reemplaza notificationsEmailAddress.example.com por una dirección de correo electrónico válida.
Hay un tema en la lista de correo de groups.io que sirve como ejemplo real.
Referencias
- Referencia Appveyor.yml
- Publicando artifacts en releases de GitHub | AppVeyor
- Sintaxis del nombre de release en la sección deploy del archivo de configuración appveyor.yml
- mesa/appveyor.yml en master · anholt/mesa
- Discusión en la lista de correo de NVDA-Addons (complementos de NVDA)
- Actualizaciones de Abdel para AppVeyor en la lista de correo de complementos de NVDA
Agradecimientos
Gracias a @abdel792, @derekriemer y @tuukao por hacer esto posible.