¿Cómo hacer lanzamientos automáticos / nightlies del software C ++ con GitHub?

Lo que estoy buscando es algo que comstack código C ++ cada noche o en cada confirmación, y luego, de manera crucial, ejecuta algunos commands para crear un file comprimido o un package que luego se puede agregar a una "Versión" en GitHub.

Sé que hay travis-CI, que comstack automáticamente confirmaciones, y puede ejecutar, por ejemplo, un objective CMake INSTALL y luego CPack, que crearía un package zip o de instalador. Pero no es posible upload estos files a GitHub o mostrarlos en algún lugar.

Estaba pensando que tal vez había otro service disponible que se integra con GitHub, pero que no pudo encontrar ningún hit de Google. Preferiblemente, esto sería independiente de travis-CI, ya que en travis se ejecutarían comstackciones de debugging (analizadores estáticos, etc.). Mientras que para un lanzamiento que desea implementar, pondría indicadores de lanzamiento, documentation de compilation, etc.

Esto es para un proyecto de código abierto, así que estoy buscando algo que lo haga gratis para proyectos de código abierto, preferiblemente sin configurar una infraestructura de server propia.

Hay algunas publicaciones relacionadas, como Travis-CI Auto-Tag Build para GitHub Release o una sección travis en la implementación, pero en realidad no han respondido a mi pregunta.

Puede usar travis-CI para esto, revise "crear artefactos" en la documentation.

https://docs.travis-ci.com/user/deployment/releases/

Al momento de escribir, se ve así:

GitHub libera la carga

Travis CI puede cargar activos automáticamente desde su $TRAVIS_BUILD_DIR a sus tags git en su repository de GitHub.

Tenga en count que la implementación de versiones de GitHub funciona solo para tags, no para sucursales.

Para una configuration mínima, agregue lo siguiente a su .travis.yml :

 deploy: provider: releases api_key: "GITHUB OAUTH TOKEN" file: "FILE TO UPLOAD" skip_cleanup: true on: tags: true 

Básicamente, tendría que labelr cada confirmación que desea cargar, de modo que podría hacer un trabajo cron que lo haga con regularidad, o hacerlo manualmente, solo en los días en que sucedió un trabajo interesante.

Alternativamente, puede hacer que cargue todas las comstackciones en una count de almacenamiento en la nube de google, o en una count de amazon s3, y luego puede realizar un trabajo de cron desde allí. Ver documentos por ejemplo aquí .