Låt oss avsluta detta. I del 1 av den här bloggserien förklarade jag de olika Windows-byggmålen som stöds av PostgreSQL. I del 2 visade jag hur man testar patchar för Windows-kompatibilitet och hur man enkelt snurrar upp en Windows-miljö för testning och enkel utveckling. Nu, i den här tredje och sista delen, kommer vi att göra det som bra programmerare gör:Vi kommer att automatisera det.
Det finns ett antal tjänster där ute som du kan peka på ett GitHub (eller GitLab eller Bitbucket eller ...) förråd och få det att bygga din kod vid varje commit. Travis CI är en populär av dessa, men det finns andra. De flesta av dessa stöder endast versioner på Linux. Men det finns också en tjänst som stöder builds på Windows, och det är AppVeyor. Så låt oss koppla upp ett PostgreSQL-bygge med det. Låt oss använda GitHub här för enkelhetens skull, men AppVeyor stöder även andra Git-tjänster.
För att komma igång, skapa ett AppVeyor-konto, tryck PostgreSQL-koden till ett arkiv på GitHub och koppla ihop de två. Jag har till exempel https://github.com/petere/postgresql och https://ci.appveyor.com/project/petere/postgresql.
Allt du behöver nu är en .appveyor.yml
fil i ditt arkiv för att berätta för AppVeyor vad den ska göra. Jag har precis lagt upp filerna som jag använder för pgsql-hackare, så du kan ta dem därifrån. Observera att det finns tre filer för de tre olika byggvarianterna:MSVC, MinGW och Cygwin. Kanske skulle det vara användbart att kombinera dem på något sätt, men det är inte klart för mig hur man gör det utan att skapa en gigantisk röra. Så begå bara filen du vill ha, tryck på din filial och låt den byggas. Om du behöver testa flera varianter, git reset --hard HEAD~
, begå en till och tryck igen. Jag har använt det här systemet i några månader nu och det har varit till stor hjälp.
Okej, det avslutar mina resor runt Windows för nu. Som jag nämnde inledningsvis är Windows inte min primära utvecklingsmiljö, så detta var till stor del en utforskning för min egen fördel. Jag hoppas att det är användbart för andra och gör det mindre skrämmande att hantera Windows-stödet i PostgreSQL.