Concluons cela. Dans la partie 1 de cette série de blogs, j'ai expliqué les différentes cibles de construction Windows prises en charge par PostgreSQL. Dans la partie 2, j'ai montré comment tester les correctifs pour la compatibilité Windows et comment faire tourner facilement un environnement Windows pour les tests et le développement simple. Maintenant, dans cette troisième et dernière partie, nous allons faire ce que font les bons programmeurs :nous allons l'automatiser.
Il existe un certain nombre de services sur lesquels vous pouvez pointer vers un référentiel GitHub (ou GitLab ou Bitbucket ou …) et lui faire construire votre code à chaque validation. Travis CI est l'un d'entre eux populaire, mais il y en a d'autres. La plupart d'entre eux ne prennent en charge que les versions Linux. Mais il existe également un service qui prend en charge les builds sur Windows, et c'est AppVeyor. Alors connectons une version PostgreSQL avec ça. Utilisons GitHub ici pour plus de simplicité, mais AppVeyor prend également en charge d'autres services Git.
Pour commencer, créez un compte AppVeyor, transférez le code PostgreSQL vers un référentiel sur GitHub et connectez les deux. J'ai https://github.com/petere/postgresql et https://ci.appveyor.com/project/petere/postgresql, par exemple.
Tout ce dont vous avez besoin maintenant est un .appveyor.yml
fichier dans votre référentiel pour indiquer à AppVeyor quoi faire. Je viens de publier les fichiers que j'utilise pour pgsql-hackers, vous pouvez donc les récupérer à partir de là. Notez qu'il existe trois fichiers pour les trois variantes de build différentes :MSVC, MinGW et Cygwin. Il serait peut-être utile de les combiner d'une manière ou d'une autre, mais je ne sais pas comment faire cela sans créer un gâchis géant. Alors validez simplement le fichier que vous voulez, poussez votre branche et laissez-la se construire. Si vous avez besoin de tester plusieurs variantes, il suffit de git reset --hard HEAD~
, engagez-en un autre et appuyez à nouveau. J'utilise ce système depuis quelques mois maintenant, et il m'a été très utile.
D'accord, cela met fin à mes voyages autour de Windows pour l'instant. Comme je l'ai mentionné au début, Windows n'est pas mon environnement de développement principal, il s'agissait donc en grande partie d'une exploration à mon avantage. J'espère que cela sera utile pour les autres et rendra la gestion de la prise en charge de Windows dans PostgreSQL moins intimidante.