Terminemos con esto. En la parte 1 de esta serie de blogs, expliqué los diferentes objetivos de compilación de Windows compatibles con PostgreSQL. En la parte 2, mostré cómo probar parches para la compatibilidad con Windows y cómo activar fácilmente un entorno de Windows para pruebas y desarrollo simple. Ahora, en esta tercera y última parte, haremos lo que hacen los buenos programadores:lo automatizaremos.
Hay una serie de servicios que puede señalar a un repositorio de GitHub (o GitLab o Bitbucket o...) y hacer que construya su código en cada confirmación. Travis CI es uno de los más populares, pero hay otros. La mayoría de estos solo admiten compilaciones en Linux. Pero también hay un servicio que admite compilaciones en Windows, y ese es AppVeyor. Así que conectemos una compilación de PostgreSQL con eso. Usemos GitHub aquí para simplificar, pero AppVeyor también es compatible con otros servicios de Git.
Para comenzar, cree una cuenta de AppVeyor, envíe el código de PostgreSQL a un repositorio en GitHub y conecte los dos. Tengo https://github.com/petere/postgresql y https://ci.appveyor.com/project/petere/postgresql, por ejemplo.
Todo lo que necesita ahora es un .appveyor.yml
archivo en su repositorio para decirle a AppVeyor qué hacer. Acabo de publicar los archivos que utilizo para pgsql-hackers, para que puedan obtenerlos desde allí. Tenga en cuenta que hay tres archivos para las tres variantes de compilación diferentes:MSVC, MinGW y Cygwin. Tal vez sería útil combinarlos de alguna manera, pero no tengo claro cómo hacerlo sin crear un gran lío. Así que simplemente confirme el archivo que desea, empuje su rama y déjelo construir. Si necesita probar múltiples variantes, simplemente git reset --hard HEAD~
, confirme otro y presione de nuevo. He usado este sistema durante algunos meses y ha sido muy útil.
Muy bien, eso concluye mis viajes por Windows por ahora. Como mencioné al principio, Windows no es mi entorno de desarrollo principal, por lo que en gran parte fue una exploración para mi propio beneficio. Espero que sea útil para otros y haga que administrar el soporte de Windows en PostgreSQL sea menos abrumador.