Atlassian Bamboo vs Jetbrains Teamcity - seal on selge võitja

Olen kasutanud pideva integratsiooni servereid juba üle kümne aasta. Kasutasin Jenkinsit, Bambust, Travisit, proovisin Circle, Jenkinsit, GOCD, Semaphore ja BuildBot. Suhtun testimisse ja pidevasse juurutamisse väga tõsiselt ja mul on oma ehitamisserveri suhtes tugevad nõudmised. Jooksin ise hostitud bambust rohkem kui 4 aastat, integreerituna Jira ja Bitbucket serveriga ning olin rahul, mitte rahul.

Kui Atlassian tõstis nende hindu ka Bambusele, otsustasin hinnata uut CI-lahendust. Ma ei olnud bambuse funktsioonide arendamisega rahul. Ma kasutasin viisi paljudesse skriptiülesannetesse, kuna minu kasutusjuhtumite jaoks polnud piisavalt pistikprogramme. Ma ei saanud endale lubada teist ehitustööstust ega bambust, sest ma olen ainult ühemehe arendaja meeskond.

Ma torkasin neid kõiki. Alustasin avatud lähtekoodiga, kuid Jenkins ja GOCD on minu jaoks tõsine õudusunenägu. Jenkins liidese tõttu (isegi sinise ookeaniga), GOCD puuduvate integratsioonide ja paindumatuse tõttu. Ma olin nii pettunud ...

Hakkasin hindama teadaolevaid SaaS-e, nagu Circle ja Semaphore ja whatnot. Kuid nad kõik tundsid, et mul on puudu kogu töövoog, mis mul bambusega oli.

Väikeseks kasutamiseks tasuta

Lõpuks vaatasin Jetbrains Teamcity litsentsimist ja olin üllatunud, et väikeettevõtetele on kehtestatud tasuta tasand. Paigaldamist oli doki abil lihtne teha ja kõik hakkas tunduma väga loomulik. Kasutajaliides on natuke vana kool, kuid see on pakitud asjadega. Olin natuke skeptiline, kuid müüsin siis tohutul hulgal valikuvõimalusi kõige jaoks. Üks nädal KÜ-s on lihtsalt imelihtne. Saate kõike kohandada ja ma ei saanud mitte ainult viia kõik oma projektid bambusest Teamcity'i, vaid ka kogu oma häälestust täiustada.

Ma arvasin alati, et Teamcity on CI alakoer ja liiga vana kool, kuid see polnud nii.

Siin on loetelu funktsioonidest, mis purustavad minu jaoks bambuse:

Muutujate ja konfiguratsioonide parameetrite automaatne lõpuleviimine

Igas CI-serveris on nii palju muutujaid, mida soovitakse kasutada. Kuid neid on alati nii raske meelde jätta. Bamboo dokumentatsioonis on loetletud kõik muutujad, kuid TC idee on palju parem:

see täidab muutujad automaatselt, kui sisestate%. See toimib lihtsate konfiguratsioonivalikute (nagu siin olev loendur), aga ka tekstisisese skripti korral. Nii lihtne, nii kasulik!

Otsene navigeerimine

Üks põhjus, miks peate UI-ga harjuma, on see, et peaosalistel on nende külge kinnitatud väike nool.

Väikesed nooled kõikjal kasutajaliideses alates meeskonnatööst - tähistatud punase ringiga

Kuid nad on nii vaesed. Neil klõpsates saate üksuse kontekstis navigeerimise lingid. Näiteks ehituse tulemusele klõpsates saate logi uurida, testi tulemusi vaadata, konfiguratsiooni redigeerida jne. Alati on vaja minna vaikimisi kulgevat marsruuti, mis on tavaliselt see, kuhu soovite minna, aga sageli saate säästa kahte või enamat klõpsu. Kui see on teada saanud, on see nii tohutult turvalisem aeg.

Kontekstimenüüd ohustavad navigeerimise ajal tonni aega

Mallide loomine ja juurutamine

Meeskonnatööl on oma konfiguratsioonide ühiste osade taaskasutamisel nii palju läbimõeldud täiustusi. See on värk, millest unistused on tehtud. Saate luua malli ehitamisest või alustada nullist ja luua selle malli põhjal uusi ehituse konfiguratsioone. Kui mall on muudetud, pärib ehituse konfiguratsioon muudatused. See on hästi tehtud, sest nad tähistasid kõike kristallselgelt: kas see säte tuleb mallist? Kas ma tühistasin selle selles konfiguratsioonis?

Projektid ja projektide hierarhia

Teamcitys on esimene kodanik ehituse konfiguratsioon. Seal on ka juurutuskonfiguratsioonid. Nad elavad projekti sees. Kuid projekt ise võiks olla osa suuremast projektihierarhiast, näiteks: “Projektid kliendile A” või “Projektid Symfony taustaprogrammiga”. See korraldab teie projektid-juhtpaneeli nii hästi. Seadistusi ja muutujaid on võimalik pärida ka vanemprojektidest - tapjafunktsioon.

Metajooksjad (lööb meelt)

Kas teil on palju ehitamiskonfiguratsioone? Nad ehitavad erinevalt, aga kas te täidate oma katseid alati ühtemoodi? (näiteks lõngakatsed). Meeskonnatööl on teie jaoks funktsioon: seda nimetatakse metajooksjateks. Saate need ekstraheerida ühest oma ehituse konfiguratsioonist ja kasutada seda ehitusetappide kogumina, mis komplekteeritakse muude ehituse konfiguratsioonide jaoks. Metajooks on xml, mida saate reguleerida. Rakendage metajooksja teistele ehitamiskonfiguratsioonidele ja täpselt samu toiminguid nimetatakse alati ehituse käivitamiseks. Metajooksjale on võimalik anda parameetreid.

Metajooksu XML-i määratlus

See koputas mu jalast. Kui ma vaid teaksin seda mõni aasta tagasi: oleksin palju stressi säästnud! Ma kasutan meta jooksjaid, et kogu ehituse komplekti käitamiseks ehitada samme. Näit. käitage phpunit lõngateste, analüüsige testide aruandeid ja puhastage.

Laadige üles ssh-klahvid

Ssh-mandaadi kasutamist bambuses on nii raske. Seda on Teamcitys nii lihtne teha. Saate võtmeid üles laadida kasutajaliidese abil või kopeerida need kausta, mille olete doki kujutisele lisanud. Seejärel kasutate klahve kõikjal ssh-ülesannete, scp-i või rsynci jaoks. Nii lihtne, nii hästi läbimõeldud - soovin, et ainult nemad pakuksid neile võlviku.

Hallake ssh-agenti otse oma ehituste jaoks

Kas teil on heliloojaga installimisel olnud probleeme oma privaatsetele repositsioonidele juurdepääsuga? Kas teil on kunagi olnud vaja ehitada ssh-käske? Kogu aeg? Õige!
Teamcity buildi funktsioon võimaldab teil ehitada ssh mandaate. Seejärel loob see ssh-agent, mis võimaldab teil ssh-i kasutada skriptides ssh-d. Seda on nii lihtne kasutada ja puhastada. Miks keegi sellele eriti ei mõelnud?

Dialoogid „Valige fail”

Ma ei saa loetleda kõiki UI asju, mis panevad sind tundma: “Oh! See on mugav ”. Siin on ainult üks näide. Kui viitate bambuse pistikprogrammides olevatele konfiguratsioonifailidele, peate alati meeles pidama suhtelist rada ja mis oli jälle kehtiv töökataloog? Klõpsake Teamcity'is nuppu pisike ikoon, mis asub konfiguratsioonisätete ja buumi kõrval: seal loetletakse teie hoidlast uusim kontrollitud lähtepuu.

Vaadake oma katseid, otse ja otse!

Bambusest tohutu valu on testide aruandlus ja logi uurimiste koostamine. Kui kõik läheb valesti, peate leidma vormindamata, esiletõstetud ehitamislogi, et leida, milline testjuhtum ebaõnnestus. Puuduvad integratsioonid sellistele tööriistadele nagu phpunit või muud tavalised testjooksjad sunnivad teid seda aeg-ajalt bambuses tegema.

Testide kulgu näidatakse ehituse ajal reaalajas

Teamcity'is on testid UI-s kirjas teie ehituse tulemustes. See eraldab käimasoleva jooksutesti, käigu ja testi tulemused otse käsurealt väljundist. Phpuniti kasutamisel peate lisama oma phpuniti kõnele ainult --log-teamcity ja Teamcity võtab testitulemused otse logidest üles. See on parim edunäitaja, mis mul kunagi olnud on.

Ma pole kunagi mõelnud ...

... et oleksin ARMASTUSes pidevalt pideva integratsiooniserveriga. Jetbrains, tehke midagi oma pildi jaoks. Sa väärid olla CI-serverite kuningas, tõsiselt.

Kohustustest loobumine: Jetbrains ei maksnud ega julgustanud mind seda tükki kirjutama.

Tahtsin, et see oleks Teamcity kiitus, mitte bambuse kallale ajamine. Kui olete huvitatud tükist teemal „mis bambuses viga on“, andke mulle sellest teada! Mul on hea meel töötada välja.

Palun jälgige mind twitteris!