CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 22 Oct 2017 14:33

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 6 mensajes ] 
Autor Mensaje
NotaPublicado: 29 May 2016 20:57 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
Hola,

Esto es solo marginalmente "aventurero", pero se que por aquí algunos sois bastante cross-platform, y lo mismo os habéis enfrentado a esto ya, a ver si tenéis alguna idea para mi :)

Resulta que cada vez que saco una nueva beta de ngPAWS, me toca hacerme un paseillo por todas las plataformas soportadas (Windows, Linux-x8, OSX y Linux-arm) para compilar y empaquetar. Además no son todas iguales, y en las plataformas con IDE (Windows y Linux-x86) hay que crear paquete en inglés y en español, por lo que al final hacerlo se lleva bastante rato, y además tiende a fallar (como se ha visto recientemente. , que me dejé las librerías fuera de la versión linux).

Total, que he investigado, y primero traté de ver como hacer cross-compiling, pero es un infierno, y además multiplicado por 3, porque tengo fuentes en tres lenguajes (el compilador en C, el IDE en freepascal, y el preprocesador en C++). Lo siguienteque he hecho ha sido instalar dropbox para que mi carpeta de fuentes esté sincronizada (ya lo estaba con la nube, pero no con todas las maquinas), y hacerme unos scripts (bat y bash) que me hagan los paquetes de cada cosa. Aun tengo que pasarme por cada máquina para hacer los paquetes, pero me estoy currando el script para que directamente me genere los paquetes, lo cual hace que sea mas dificl equivocarse y hacerlos mal.

La mayor pega la tengo con Raspberry Pi, que no hay cliente dropbox, aunque hay apaños con el API, pero cuando me ponga con ella probablemente haré que el script de build haga rsync a la maquina linux, o git pull sobre GitHub y andando.

¿Soy un neandertal de los builds o realmente la cosa es así de incómoda? ¿Se os ocurren cosas que podría hacer?

_________________
Sígueme en twitter: @uto_dev
http://www.ngpaws.com


Arriba
 Perfil  
 
NotaPublicado: 30 May 2016 07:44 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 23 Abr 2004 08:49
Mensajes: 2887
Ubicación: España (Galicia)
A mi no se me ocurre nada más allá de lo que ya has echo. Lo siento.

_________________
-- Baltasar, el arquero


Arriba
 Perfil  
 
NotaPublicado: 30 May 2016 08:38 
Desconectado
Yiepp
Yiepp

Registrado: 26 Jul 2015 17:18
Mensajes: 62
He leído cosas buenas de CMake, aunque para compilar el Pascal tendrías que integrar de alguna forma sus herramientas (¿fpmake?).

También, aunque Gradle se usa sobre todo en Java, tiene soporte C/C++. De nuevo, ni idea de cómo incluir el Pascal en el proceso. A mí me gusta Java, así que ésta es la ruta que investigaría primero.


Arriba
 Perfil  
 
NotaPublicado: 30 May 2016 10:43 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
n-n escribió:
He leído cosas buenas de CMake, aunque para compilar el Pascal tendrías que integrar de alguna forma sus herramientas (¿fpmake?).

En realidad, con los baty bash ya creo que podría generar todo sin problemas, tanto el compilador como el preprocesador tienen su Makefile así que no son problema, y el IDE se genera desde command line también, con "lazbuild" (como un make vamos).


Citar:
También, aunque Gradle se usa sobre todo en Java, tiene soporte C/C++. De nuevo, ni idea de cómo incluir el Pascal en el proceso. A mí me gusta Java, así que ésta es la ruta que investigaría primero.


Le echo un ojo a ambas de todos modos, a ver si me dan idea que no se me hubieran ocurrido. Lo ideal sería un sitio que pudiera generar nightly builds y cosas así, y que soportara esas plataformas, pero supongo que eso es mucho pedir.

_________________
Sígueme en twitter: @uto_dev
http://www.ngpaws.com


Arriba
 Perfil  
 
NotaPublicado: 30 May 2016 13:38 
Desconectado
Implementador
Implementador

Registrado: 13 Feb 2005 18:57
Mensajes: 1855
Creo que has tomado la dirección correcta: automatizar, automatizar, automatizar.

Supongo que podrías ir un paso más allá y tender hacia la integración continua. Que los commits (o un sobconjunto de ellos) lanzaran toda la maquinaria de compilación y pruebas(!). El lanzamiento puedes conseguirlo a base de hooks en git.

No sé si te merecerá la pena (o si será legal con OSX y demás), pero si incluyes en la ecuación unas máquinas virtuales (o un poco de magia con qemu, para ejecutar binarios de otras plataformas), que tengan todos los requisitos de compilación instalados o, hilando muy fino, que se instalen desde cero también automáticamente en VMs "base" (y nada más, con lo que podrías ahorrarte sorpresas por incompatibilidades, virus, o similar en tus máquinas de uso diario)... supongo que sería lo ideal, y te ahorrarías también el «pasarme por cada máquina».

Por otro lado, no creo que necesites dropbox. Como bien dices, git parece suficiente.


Arriba
 Perfil  
 
NotaPublicado: 30 May 2016 16:57 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
dddddd escribió:
Creo que has tomado la dirección correcta: automatizar, automatizar, automatizar.

Supongo que podrías ir un paso más allá y tender hacia la integración continua. Que los commits (o un sobconjunto de ellos) lanzaran toda la maquinaria de compilación y pruebas(!). El lanzamiento puedes conseguirlo a base de hooks en git.


Hmmm, eso suena interesante, lo tengo que mirar. Además me permitirá lanzar pruebas como bien dices, que ahora se lanzan en Windows y poco más.

Citar:
No sé si te merecerá la pena (o si será legal con OSX y demás), pero si incluyes en la ecuación unas máquinas virtuales (o un poco de magia con qemu, para ejecutar binarios de otras plataformas), que tengan todos los requisitos de compilación instalados o, hilando muy fino, que se instalen desde cero también automáticamente en VMs "base" (y nada más, con lo que podrías ahorrarte sorpresas por incompatibilidades, virus, o similar en tus máquinas de uso diario)... supongo que sería lo ideal, y te ahorrarías también el «pasarme por cada máquina».

Uf, sí, pero montar algo así (aparte de difícil en general, e ilegal con OSX) requiere un tiempo para montarlo que ahora mismo no tengo.En realidad lo de "pasarme por las máquinas" es una manera de hablar, porque a todas ellas puedo acceder por ssh (menos a la Windows, que es desde la que trabajo normalmente), así que mas que pasarme por máquinas es pasarme por ventanas (lo cual es un coñazo, pero tampoco es que ande con máquinas para aqui y para allá).

Por otro lado, después de montar ayer la compilación Windows y Linux, con un .bat y .sh en cada maquina, esta mañana se me ha ocurrido para la Raspberry hacer un script que desde Windows se conectara via SSH, se baje el código de Github, compile, empaquete y descargue dicho paquete, y la cosa funciona. Es decir, doy doble click a un .bat, me pide la password de ssh de mi RPi un par de veces, y al terminar aparece el .tgz en la misma carpeta que el .bat. Creo que voy a hacer lo mismo con el Linux intel, y OSX, con la ventaja de que el script va a ser igual o casi :-)


Citar:
Por otro lado, no creo que necesites dropbox. Como bien dices, git parece suficiente.

Sí, bueno, eso es por otras razones, como que se me sincronice el código entre el sobremesa y el portatil aunque no me acuerde de hacer commit/push, que últimamente me toca cambiar sin previo aviso a menudo y es un coñazo no poder seguir por donde ibas. Eso sí, para las máquinas que no son de trabajo sino solo de build (los dos linux) si que me sobra.

_________________
Sígueme en twitter: @uto_dev
http://www.ngpaws.com


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 6 mensajes ] 

Todos los horarios son UTC + 1 hora


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro

Buscar:
Saltar a:  
Desarrollado por phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpBB-Es.COM