3 meafaigaluega taʻutaʻua mo le faʻatulagaina o le faʻaauau pea o le faʻaogaina (Faʻaauau le Faʻaaogaina)

3 meafaigaluega taʻutaʻua mo le faʻatulagaina o le faʻaauau pea o le faʻaogaina (Faʻaauau le Faʻaaogaina)

Fa'aauau le Fa'atinoina o se faiga fa'apitoa i le atina'eina o polokalama fa'aoga e fa'aoga vave, saogalemu ma lelei le fa'atinoina o galuega eseese i polokalama.

O le manatu autu o le fatuina lea o se faʻagasologa otometi faʻalagolago e mafai ai e le tagata atiaʻe ona vave tuʻuina atu le oloa maeʻa i le tagata faʻaoga. I le taimi lava e tasi, o suiga faifaipea e faia i le gaosiga - e taʻua o le faʻaauau pea le tuʻuina atu o paipa (CD Pipeline).

Ua fautuaina e Skillbox: Kosi fa'ata'ita'i "Mobile Developer PRO".

Matou te faʻamanatu atu ia te oe: mo tagata faitau uma o le "Habr" - o se faʻaitiitiga o 10 rubles pe a lesitala i soʻo se vasega Skillbox e faʻaaoga ai le code promotional "Habr".

3 meafaigaluega taʻutaʻua mo le faʻatulagaina o le faʻaauau pea o le faʻaogaina (Faʻaauau le Faʻaaogaina)

Ina ia pulea le tafe, e mafai ona e faʻaogaina le tele o meafaigaluega, e aofia uma ai le totogiina ma le leai o se totogi. O lenei tusiga o loʻo faʻamatalaina ai le tolu o fofo sili ona lauiloa i le au atinaʻe e mafai ona aoga i tagata fai polokalame uma.

Jenkins

Fa'ato'a fa'atotonuina e le tagata lava ia sau fa'aautomatika fa'apogai matala. E aoga le galulue fa'atasi e fa'autometi ituaiga uma o galuega e feso'ota'i ma faufale, fa'ata'ita'iga, felauaiga, po'o le fa'aogaina o polokalame.

La'ititi mana'omia PC:

  • 256 MB RAM, 1 GB avanoa faila.

Lelei:

  • 1 GB RAM, 50 GB malo malo.

Ina ia galue, e te manaʻomia foʻi polokalame faʻaopoopo - Java Runtime Environment (JRE) version 8.

O le fausaga (distributed computing) e pei o lenei:
3 meafaigaluega taʻutaʻua mo le faʻatulagaina o le faʻaauau pea o le faʻaogaina (Faʻaauau le Faʻaaogaina)

Jenkins Server o se faʻapipiʻi e nafa ma le GUI talimalo, faʻapea foʻi ma le faʻatulagaina ma le faʻatinoina o le fale atoa.

Jenkins Node/Slave/Build Server - masini e mafai ona fetuutuunai e faatino galuega faufale e fai ma sui o le Matai (master node).

Fa'atulagaina mo Linux

Muamua e te manaʻomia faʻaopoopo le fale teu Jenkins i le faiga:

cd /tmp && wget -q -O — pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - echo 'deb pkg.jenkins.io/debian-stable binary/' | sudo tee -a /etc/apt/sources.list.d/je

Fa'afou le fale teu oloa:

Suʻesuʻega faʻaleleia

Fa'apipi'i Jenkins:

sudo apt faʻapipiʻi jenkins

A maeʻa lenei mea, o le a avanoa Jenkins i le polokalama e ala i le faʻaogaina o le port 8080.

Ina ia siaki galuega, e tatau ona e tatalaina le tuatusi i le browser localhost:8080. O le a faʻamalosia oe e le faiga e ulufale i le upu muamua mo le tagata faʻaoga aʻa. O lenei faʻaupuga o loʻo i totonu o le faila /var/lib/jenkins/secrets/initialAdminPassword.

O lea la ua sauni mea uma e alu, e mafai ona e amata fatuina o tafe CI / CD. O le fa'afanua fa'akalafi o le laulau faigaluega e pei o lenei:

3 meafaigaluega taʻutaʻua mo le faʻatulagaina o le faʻaauau pea o le faʻaogaina (Faʻaauau le Faʻaaogaina)

3 meafaigaluega taʻutaʻua mo le faʻatulagaina o le faʻaauau pea o le faʻaogaina (Faʻaauau le Faʻaaogaina)

Jenkins Malosi:

  • scalability saunia e le Master/Slave fausaga;
  • maua ole REST XML/JSON API;
  • le mafai ona faʻafesoʻotaʻi le tele o faʻaopoopoga faʻafetai i plugins;
  • toaga ma fa'atupu pea le fa'alapotopotoga.

Cons:

  • e leai se poloka su'esu'e;
  • e le matua fa'aoga-fa'aoga fa'aoga.

TeamCity

Atinaʻe faʻapisinisi mai JetBrains. E lelei le 'au'aunaga i se seti faigofie ma se atina'e lelei. O le faʻaogaina le faʻaogaina o loʻo i ai le tele o galuega, ma o le numera o faʻapipiʻi avanoa o loʻo faʻateleina pea.

Manaomia le Java Runtime Environment (JRE) version 8.

O mana'oga meafaigaluega a le server e le'o fa'atauaina:

  • RAM - 3,2 GB;
  • gaosiga - lua-autu, 3,2 GHz;
  • ala feso'ota'iga ma le gafatia o le 1 Gb/s.

O le 'au'aunaga e fa'atagaina oe e ausia le fa'atinoga maualuga:

  • 60 poloketi faʻatasi ma 300 faʻapipiʻi faufale;
  • 2 MB fa'asoa mo le fau fale;
  • 50 tagata faufale;
  • le mafai ona galulue faʻatasi ma le 50 tagata faʻaoga i le upega tafaʻilagi ma 30 tagata faʻaoga i le IDE;
  • 100 fesoʻotaʻiga o VCS i fafo, e masani lava Perforce ma Subversion. Ole taimi ole suiga ole 120 sekone;
  • sili atu i le 150 suiga i le aso;
  • galue ma le database i luga o le tasi server;
  • Fa'atonuga fa'agaioiga a le JVM server: -Xmx1100m -XX:MaxPermSize=120m.

O mana'oga a le sooupu e fa'avae i luga o fa'alapotopotoga fa'atautaia. O le galuega autu a le 'auʻaunaga o le mataʻituina lea o soʻotaga fesoʻotaʻi uma ma tufatufa faʻapotopotoga tuʻufaʻatasia i nei sui faʻavae i luga o manaʻoga o fesoʻotaʻiga, lipoti o taunuʻuga. E sau sui i tulaga eseese ma faiga fa'aoga, fa'atasi ai ma se si'osi'omaga na fa'atulaga muamua.

O fa'amatalaga uma e uiga i taunu'uga faufale o lo'o teuina i totonu o fa'amaumauga. Ole mea muamua ole tala fa'asolopito ma isi fa'amatalaga tutusa, suiga VCS, sui, fau laina, fa'amatalaga fa'aoga ma fa'atagaga. O le database e le na'o le fausiaina o ogalaau ma mea taua.

3 meafaigaluega taʻutaʻua mo le faʻatulagaina o le faʻaauau pea o le faʻaogaina (Faʻaauau le Faʻaaogaina)

Fa'atulagaina mo Linux

Ina ia faʻapipiʻi lima TeamCity ma se pusa servlet Tomcat, e tatau ona e faʻaogaina le TeamCity archive: TeamCity .tar.gz. La'u mai e mafai ona e maua mai iinei.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [amata|tu]

A e amata muamua, e tatau ona e filifilia le ituaiga o faʻamaumauga o loʻo teuina ai faʻamaumauga faʻapotopotoga.

3 meafaigaluega taʻutaʻua mo le faʻatulagaina o le faʻaauau pea o le faʻaogaina (Faʻaauau le Faʻaaogaina)

O lo'o fa'aauau pea le fa'atonuga localhost:8111/ fa'atasi ai ma se sui faufale e tasi ua resitalaina o lo'o fa'agaoioi i le PC lava e tasi.

Malosiaga o TeamCity:

  • seti faigofie;
  • fa'aoga fa'aoga-fa'aoga;
  • se numera tele o galuega faʻapipiʻi;
  • Auaunaga lagolago;
  • o loʻo i ai se API MAFALIGA;
  • pepa lelei;
  • saogalemu lelei.

Cons:

  • fa'atapula'a tu'ufa'atasiga;
  • O se meafaigaluega totogi lea;
  • o se nuu laitiiti (ae peitai, o loo tuputupu ae).

GoCD

O se galuega fa'avae tatala e mana'omia ai le Java Runtime Environment (JRE) version 8 mo le fa'apipi'iina ma le fa'agaioiga.

Faiga Faʻapitoa:

  • RAM - 1 GB laʻititi, sili atu e sili atu;
  • gaosiga - lua-autu, faʻatasi ai ma le faʻasologa autu o le 2 GHz;
  • malo malo - a itiiti mai 1 GB avanoa avanoa.

Suisui:

  • RAM - a itiiti ifo 128 MB, sili atu e sili atu;
  • processor - a itiiti mai 2 GHz.

E faʻamautinoa e le 'auʻaunaga le faʻaogaina o sui ma tuʻuina atu se faʻaoga faigofie mo le tagata faʻaoga:

3 meafaigaluega taʻutaʻua mo le faʻatulagaina o le faʻaauau pea o le faʻaogaina (Faʻaauau le Faʻaaogaina)

Laasaga/Galue/Galue:

3 meafaigaluega taʻutaʻua mo le faʻatulagaina o le faʻaauau pea o le faʻaogaina (Faʻaauau le Faʻaaogaina)

Fa'atulagaina mo Linux

siuleo "aitalafu download.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list

curl download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key faaopoopo -
faʻaopoopo-apt-repository ppa:openjdk-r/ppa

lata Mauaina-talafeagai

apt-mau faʻapipiʻi -y openjdk-8-jre

apt-get install go-server

apt-get install go-agent

/etc/init.d/go-server [amata|taofi|tulaga|toe amata]

/etc/init.d/go-agent [amata|taofi|tulaga|toe amata]

E le mafai ona fa'aauau le GoCd localhost: 8153.

Malosiaga o le GoCd:

  • puna tatala;
  • faʻapipiʻi faigofie ma faʻatulagaina;
  • pepa lelei;

  • Lelei fa'aoga fa'aoga:

3 meafaigaluega taʻutaʻua mo le faʻatulagaina o le faʻaauau pea o le faʻaogaina (Faʻaauau le Faʻaaogaina)

  • mafai ona fa'aali la'asaga i lea la'asaga GoCD ala fa'apipi'i i le tasi va'aiga:

3 meafaigaluega taʻutaʻua mo le faʻatulagaina o le faʻaauau pea o le faʻaogaina (Faʻaauau le Faʻaaogaina)

  • faʻaaliga sili ona lelei o le fausaga o paipa:

3 meafaigaluega taʻutaʻua mo le faʻatulagaina o le faʻaauau pea o le faʻaogaina (Faʻaauau le Faʻaaogaina)

  • GoCD optimizes le CD workflow i totonu o siosiomaga ao sili ona lauiloa e aofia ai Docker, AWS;
  • o le meafaigaluega e mafai ai ona faʻasaʻo faʻafitauli i le paipa, lea o loʻo i ai le siakiina o suiga uma mai le tuʻuina atu i le faʻapipiʻiina i le taimi moni.

Cons:

  • a itiiti mai e tasi le sooupu e manaʻomia;
  • e leai se fa'amafanafanaga e fa'aalia ai galuega uma ua mae'a;
  • e faʻatino poloaiga taʻitasi, e tatau ona e faia se galuega se tasi mo le faʻatulagaina o paipa;
  • Ina ia faʻapipiʻi le plugin e te manaʻomia le faʻanofoina o le faila .jar i /plugins/external ma toe amata le server;
  • e fai si toalaiti nuu.

O se faaiuga

E na o le tolu lava mea faigaluega, o le mea moni e tele isi mea. E faigata ona filifili, o lea e tatau ona e gauai atu i vaega faaopoopo.

O le fa'asinomaga tatala o le mea faigaluega e mafai ai ona malamalama po'o le a, fa'aopoopo i ai fa'aopoopo mea fou vave. Ae afai e le aoga se mea, e tatau ona e faalagolago ia te oe lava ma le fesoasoani a le nuu. O meafaigaluega totogi e maua ai le lagolago e mafai i nisi taimi ona taua.

Afai o le saogalemu o lau faʻamuamua sili, e aoga le galue ma se meafaigaluega faʻapitonuʻu. Afai e leai, o le filifilia o se fofo SaaS o se filifiliga lelei.

Ma le mea mulimuli, ina ia faʻamautinoaina se faʻagasologa faʻaauau faʻaauau le faʻaogaina, e tatau ona e faʻatulagaina ni taʻiala e faʻatagaina oe e faʻaititia le tele o meafaigaluega avanoa.

Ua fautuaina e Skillbox:

puna: www.habr.com

Faaopoopo i ai se faamatalaga