Нека приключим това. В част 1 от тази серия от блогове обясних различните цели за изграждане на Windows, поддържани от PostgreSQL. В част 2 показах как да тествате корекции за съвместимост с Windows и как лесно да разгръщате среда на Windows за тестване и проста разработка. Сега, в тази трета и последна част, ще направим това, което правят добрите програмисти:ще го автоматизираме.
Има редица услуги, които можете да посочите към GitHub (или GitLab, или Bitbucket или...) хранилище и да го накарате да изгради вашия код при всеки комит. Travis CI е популярен от тях, но има и други. Повечето от тях поддържат само надстройки на Linux. Но има и услуга, която поддържа компилации на Windows и това е AppVeyor. Така че нека свържем PostgreSQL сборка с това. Нека използваме GitHub тук за простота, но AppVeyor поддържа и други услуги на Git.
За да започнете, създайте акаунт в AppVeyor, натиснете PostgreSQL кода в хранилище на GitHub и свържете двете. Имам https://github.com/petere/postgresql и https://ci.appveyor.com/project/petere/postgresql, например.
Всичко, от което се нуждаете сега, е .appveyor.yml
файл във вашето хранилище, за да кажете на AppVeyor какво да прави. Току-що публикувах файловете, които използвам за pgsql-хакери, така че можете да ги вземете от там. Имайте предвид, че има три файла за трите различни варианта на компилация:MSVC, MinGW и Cygwin. Може би би било полезно да ги комбинирам по някакъв начин, но не ми е ясно как да го направя, без да създавам огромна бъркотия. Така че просто заредете файла, който искате, натиснете своя клон и го оставете да се изгради. Ако трябва да тествате няколко варианта, просто git reset --hard HEAD~
, извършете друг и натиснете отново. Използвам тази система от няколко месеца и беше много полезна.
Добре, това приключва пътуванията ми около Windows засега. Както споменах в началото, Windows не е моята основна среда за разработка, така че това до голяма степен беше проучване в моя собствена полза. Надявам се, че е полезно за други и прави управлението на поддръжката на Windows в PostgreSQL по-малко обезсърчително.