Atlassian Bamboo vs Jetbrains Teamcity - voittaja on selvä

Olen käyttänyt jatkuvia integrointipalvelimia jo kymmenen vuoden ajan. Käytin Jenkinsiä, Bambooa, Travisiä, yritin Circleä, Jenkinsiä, GOCD: tä, Semaforia ja BuildBotia. Suhtaudun testaukseen ja jatkuvaan käyttöönottoon erittäin vakavasti ja minulla on tiukat vaatimukset rakennuspalvelimelleni. Minulla oli itse isännöimää bambua yli 4 vuotta, integroituna Jiraan ja Bitbucket-palvelimeen ja olin tyytyväinen, en onnellinen.

Kun Atlassian nosti myös Bambon hintoja, päätin arvioida uuden CI-ratkaisun. En ollut tyytyväinen bambun ominaisuuksien kehitykseen. Käytin tapaa moniin tekstinkäsittelytehtäviin, koska siellä ei ollut tarpeeksi laajennuksia käyttötapaihini. Minulla ei ollut varaa toiselle rakennusagentille, en voinut varaa bambua, koska olen vain yhden miehen kehittäjätiimi.

Puukotin niitä kaikkia. Aloitin avoimen lähdekoodin kanssa, mutta Jenkins ja GOCD ovat minulle vakava painajainen. Jenkins käyttöliittymän takia (jopa sinisen valtameren kanssa), GOCD puuttuvien integraatioiden ja joustamattomuuden takia. Olin niin pettynyt ...

Aloin arvioida tunnettuja SaaS-sovelluksia, kuten Circle ja Semaphore, ja mitä ei. Mutta he kaikki tuntuivat siltä, ​​että minusta puuttuu kokonainen pala työnkulkua, joka minulla oli bambun kanssa.

Ilmaiseksi pieneen käyttöön

Lopulta tarkastelin Jetbrains Teamcityn lisensointia ja olin yllättynyt siitä, että pienille yrityksille on ilmainen taso. Asennus oli helppo tehdä telakalla ja kaikki alkoi tuntua hyvin luonnolliselta. Käyttöliittymä on vähän vanha koulu, mutta se on pakattu tavaroihin. Olin vähän skeptinen, mutta myin sitten valtavan määrän vaihtoehtoja kaikelle. Viikko käyttöliittymässä on vain helppoa. Voit mukauttaa kaiken, ja en pystynyt siirtämään kaikkia projektejani bambuista Teamcityyn, mutta parantamaan koko asennusta.

Ajattelin aina, että Teamcity on CI: n alakoira ja liian vanha koulu, mutta se ei ollut.

Tässä on luettelo ominaisuuksista, jotka murskaavat bambua käyttötapaukselleni:

Automaattinen valmistuminen muuttujille ja kokoonpanoparametreille

Jokaisessa CI-palvelimessa on niin paljon muuttujia, jotka haluavat käyttää. Mutta niitä on aina niin vaikea muistaa. Bambon dokumentaatiossa lueteltiin kaikki muuttujat, mutta TC: n idea on paljon parempi:

se täydentää muuttujia automaattisesti, kun kirjoitat%. Tämä toimii yksinkertaisissa määritysvaihtoehdoissa (kuten tässä rakennuslaskuri), mutta myös sisäisissä komentosarjoissa. Niin yksinkertaista, niin hyödyllistä!

Suora navigointi

Yksi syy siihen, että sinun täytyy tottua käyttöliittymään, on, että päätoimijoilla on pieni nuoli kiinnitettynä.

Pienet nuolet kaikkialla käyttöliittymässä joukkueyhteistyöstä - merkitty punaisella ympyrällä

Mutta he ovat niin raskaita. Kun napsautat niitä, saat kontekstinavigointilinkit tuotteelle. Esimerkiksi, kun napsautat rakennustulosta, voit tutkia lokia, nähdä testituloksia, muokata kokoonpanoa jne. Aina on oletusreitti, joka on yleensä ensin haluamasi, mutta usein voit säästää vähintään kaksi napsautusta. Oppittuaan tämä on niin suuri aika turvallisempi.

Kontekstivalikot turvaavat tonnin aikaa navigoinnin aikana

Rakenna ja ota käyttöön malleja

Teamcityssä on niin monia harkittuja parannuksia, kun kyse on kokoonpanon yleisten osien uudelleenkäytöstä. Tästä on juttuja, joista unelmat tehdään. Voit luoda mallin rakenteesta tai aloittaa tyhjästä ja luoda uusia malleja, jotka perustuvat siihen. Kun mallia on muutettu, rakennuskokoonpano perii muutokset. Tämä on tehty niin hyvin, koska ne merkitsivat kaiken kristallinkirkkaana: tuleeko tämä asetus mallista? Ohitinko sen tässä kokoonpanossa?

Projektit ja projektit-hierarkia

Teamcityssä ensimmäinen kansalainen on rakennuskokoonpano. Myös asennuskonfiguraatioita on. He asuvat projektin sisällä. Mutta itse projekti voisi olla osa isompaa projektihierarkiaa, kuten: “Projektit asiakkaalle A” tai “Projektit Symfony-taustalla”. Tämä järjestää Projektit-hallintapaneelisi niin hyvin. Asetukset ja muuttujat on mahdollista periä myös vanhemmista projekteista - tappajaominaisuus.

Metajuoksijat (puhaltaa mieltäsi)

Onko sinulla paljon rakennuskokoonpanoja? Ne rakentuvat eri tavalla, mutta suoritat testit aina samalla tavalla? (esimerkiksi lankatesti). Teamcity-ominaisuudessa on sinulle ominaisuus: sitä kutsutaan meta-juoksijoiksi. Voit purkaa ne yhdestä rakennuskonfiguraatiostasi ja käyttää sitä kokoonpanona rakennusvaiheita, jotka niputetaan muihin rakennusmäärityksiin. Meta-juoksija toimitetaan muodossa xml, jota voit säätää. Käytä meta-juoksijaa muihin rakennuskokoonpanoihin, ja täsmälleen samoja vaiheita kutsutaan aina, kun rakennus suoritetaan. Meta-juoksijalle on mahdollista antaa parametreja.

Metakanavan XML-määritelmä

Tämä koputti minut jalkani. Jos vain tietäisin tämän muutama vuosi sitten: se olisi säästänyt minulle paljon stressiä! Käytän meta-juoksijoita niputtamaan rakennusvaiheet koko testisarjan suorittamiseksi. Esim. suorita phpunit run lankatestejä, analysoi testiraportit ja puhdistus.

Lataa ssh-näppäimet

Ssh-valtuustietojen käyttäminen bambuissa on niin vaikeaa. Se on niin helppoa tehdä Teamcityssä. Voit lähettää avaimet käyttöliittymän kautta tai kopioida ne vain kansioon, jonka olet liittänyt telakointikuvaan. Käytä sitten näppäimiä kaikkialla ssh-tehtäviin, scp: hen tai rsynciin. Niin helppoa, niin harkittua - toivon vain, että he tarjoavat holvin heille.

Hallitse ssh-agenttia suoraan rakennuksillesi

Onko sinulla koskaan ollut ongelmia yksityisten repojen käyttämisessä, kun asennat säveltäjän kanssa? Onko sinulla koskaan ollut tarvetta antaa ssh-komentoja rakenteissasi? Koko ajan? Oikein!
Teamcity-rakennusominaisuuden avulla voit lisätä ssh-käyttöoikeustietoja rakennukseen. Sitten se luo ssh-agentin, jonka avulla voit käyttää ssh: tä inline-skripteissä. Tätä on helppo käyttää ja puhdistaa. Miksi kukaan ei ajatellut sitä ensi sijassa?

“Valitse tiedosto” -dialogit

En voi luetella kaikkia käyttöliittymän asioita, jotka saavat sinut tuntemaan: “Voi! Se on kätevä ”. Tässä on vain yksi esimerkki. Kun viitat konfigurointitiedostoihin bambu-laajennuksissa, sinun on aina muistettava suhteellinen polku ja mikä oli nykyinen työhakemisto uudelleen? Napsautat Teamcityssä napsauttamalla konfiguraatioasetusten vieressä olevaa pientä kuvaketta ja puomia: Se näyttää luettelosi viimeisimmän lähdepuun arkistostasi.

Katso testit, suorana ja suorana!

Valtava bambukipu on testien ilmoittaminen ja lokitutkimusten rakentaminen. Kun kaikki menee pieleen, sinun on vieritettävä muotoilemattomaan, korostamattomaan rakennuslokiin löytääksesi mikä testitapaus epäonnistui. Puuttuvat integraatiot työkaluille, kuten phpunit tai muut yleiset testijuoksijat, pakottavat sinut tekemään sitä ajoittain bambua.

Testien eteneminen näkyy rakentamisen aikana

Teamcityssä testit luetellaan käyttöliittymässä rakennustuloksissa. Se purkaa nykyisen käynnissä olevan testin, etenemisen ja testitulokset suoraan komentorivilähdöstä. Jos käytät phpunit-sovellusta, sinun tarvitsee vain lisätä --log-teamcity phpunit-puheluusi ja Teamcity poimii testitulokset lokista. Tämä on kaikkien aikojen paras edistymisen indikaattori.

En koskaan ajatellut…

… Että olisin RAKASTUS jatkuvan integrointipalvelimen kanssa. Jetbrains, tee jotain kuvasi puolesta. Ansaitset olla vakavasti CI-palvelimien kuningas.

Vastuuvapauslauseke: Jetbrains ei maksanut eikä rohkenut minua kirjoittamaan tätä kappaletta.

Halusin tämän olevan kiitosta Teamcitystä, ei ramppeja bambusta. Jos olet kiinnostunut kappaleesta "mikä bambussa on vikaa", kerro minulle! Minusta tulee mielelläni.

Seuraa minua viserrys!