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

  1. 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).
  2. 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
  3. 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.
  4. Inicia sesión en AppVeyor.
  5. En AppVeyor, selecciona New Project (Nuevo Proyecto). (Si es necesario, elige GitHub y autorízalo).
  6. 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.

  1. Provider: GitHub Releases
  2. Environment name: GitHub_deployment
  3. Tag name: $(APPVEYOR_REPO_TAG_NAME)
  4. Release name: Release $(APPVEYOR_REPO_TAG_NAME)
  5. 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.
  6. GitHub authentication token: Tu token personal de GitHub. (Advertencia: se trata de tu token personal de GitHub, no tu clave cifrada con Appveyor)
  7. Repository name: Se deja vacío, este campo es opcional
  8. 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:

  1. Provider: FTP
  2. Environment name: ftp_deployment
  3. Protocol: FTP
  4. Host: Tu servidor.
  5. Active mode: Se deja vacío, este campo es opcional
  6. Username: Tu nombre de usuario
  7. Password: Tu contraseña
  8. Remote folder: El nombre de la carpeta que contendrá el complemento en tu servidor FTP. (Puede ser algo como /nvda-addons o /add-ons)
  9. Artifact(s): addon
  10. Application: Se deja vacío, este campo es opcional
  11. 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

  1. 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:

  1. Crea una dirección de correo para recibir notificaciones. Por ejemplo, puedes usar la integración de correo electrónico de groups.io.
  2. 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

Agradecimientos

Gracias a @abdel792, @derekriemer y @tuukao por hacer esto posible.