CI GITLAB deploy pomocí tagu - ale pokaždé jíného

CI GITLAB deploy pomocí tagu - ale pokaždé jíného
« kdy: 13. 02. 2020, 13:05:16 »
Vytvořil jsem si vlastní .gitlab-ci.yml, který dělá to co chci, tady zcela automaticky provede nahrání kódu z gitlab serveru na produkci, problém je ten, že tag musí mít konkrétní jméno, tedy vždy ho musím smazat a vytvořit znovu aby se automaticky provedlo nahrátí na produkci. Chěl bych abych mohl pořád vytvářet nové tagy, ale dávat jim jiné jméno, např. "production_v01" nebo "production_php72" tedy abych se mi job spustil pokaždé když tag bude "production*" prostě pruduction a cokoliv zatím. Nejsem schopen dohledat jak na to. Dá se to vůbec? Nakopne někdo? Děkuji.

Kód: [Vybrat]
variables:
  PROJECT_NAME: "test-of-automatic-deploy"
  PRODUCTION_DIR: "/var/www/html/test-of-automatic-deploy"
  PRODUCTION_SERVER: "1.2.3.4"
  DEPLOY_USER: "deploy"
stages:
  - deploy
deploy-job:
  stage: deploy
  tags:
    - deploy
  only:
    - production
  script:
    - rsync -ar --compress --delete --exclude-from=.deploy_ignore --rsync-path="sudo rsync" --chown=www-data:www-data --exclude-from=.gitignore . $DEPLOY_USER@$PRODUCTION_SERVER:$PRODUCTION_DIR


Re:CI GITLAB deploy pomocí tagu - ale pokaždé jíného
« Odpověď #1 kdy: 13. 02. 2020, 13:14:03 »
doplnujici otazka: eventuelne, jak jinak delat automaticke kopirovani do produkce kdyz ne pomoci tagu? (z gitlabu)

Re:CI GITLAB deploy pomocí tagu - ale pokaždé jíného
« Odpověď #2 kdy: 13. 02. 2020, 13:50:07 »
podla branche to nestaci? u mna sa master branch rovna produkcii, kazda ina branch nema co s produkciou robit

Re:CI GITLAB deploy pomocí tagu - ale pokaždé jíného
« Odpověď #3 kdy: 13. 02. 2020, 14:02:54 »
ok, samozrejme by to tak slo udelat, ze master branch by se rovnal produkci. takze by to pak mohlo fungovat jako ze pri kazdem merge requestu na master se provede rsync na produkcni server?

Re:CI GITLAB deploy pomocí tagu - ale pokaždé jíného
« Odpověď #4 kdy: 13. 02. 2020, 14:46:40 »
tak jsem si upravil gitlab-ci.yml a kupodivu funguje :-) dekuji za nakopnuti.


Re:CI GITLAB deploy pomocí tagu - ale pokaždé jíného
« Odpověď #5 kdy: 13. 02. 2020, 14:58:05 »

Re:CI GITLAB deploy pomocí tagu - ale pokaždé jíného
« Odpověď #6 kdy: 13. 02. 2020, 15:14:22 »
Dekuji
Citace: JanoSvitok

Ještě jsem to přehodnotil a master bych nakonec nepovazoval za produkci, udelal bych si branch "production" a branch "test". A v podstate bych udelal triggery, pro automaticky deploy na "test" pri merge mastera do "test" a automaticky deploy na produkci pri merge z "test" na "production"?

Dava to takhle smysl? Je mozne to takto pouzit? V idealnim pripade jeste s podminkou na cas, kdyz nepujde udelat merge do produkce driv jak napr. 12 hodin po merge na test ...

Jak bych mel upravit .yml abych pridal podminku POUZE z branche A na branch B, v only bude "production" ale jak pridat source branch?

Re:CI GITLAB deploy pomocí tagu - ale pokaždé jíného
« Odpověď #7 kdy: 13. 02. 2020, 21:27:32 »
nikde nevidim pouziti napr CI_COMMIT_NAME...
Děkuji za možnost editace příspěvku.

Re:CI GITLAB deploy pomocí tagu - ale pokaždé jíného
« Odpověď #8 kdy: 13. 02. 2020, 22:02:44 »
https://docs.gitlab.com/ee/ci/yaml/#onlyvariablesexceptvariables
https://docs.gitlab.com/ee/ci/variables/predefined_variables.html

- only:
  - branch:
    /production_.*/
  - variables:
   ???

Neviem ci sa da zistit odkial bolo mergnute do branche production_xxx. Merge request to vie, ale to je prilis skoro (este nie je mergnute).
Mozno pozriet cez git akych parentov ma $CI_COMMIT_SHA, ale z toho nezistis z akej branche to bolo, lebo ta moze byt posunuta.

Re:CI GITLAB deploy pomocí tagu - ale pokaždé jíného
« Odpověď #9 kdy: 16. 02. 2020, 18:33:06 »
- muzes mit vetev production, pak mas pri "obycejnem" pushi do ni jeji jmeno (tohle ale spis pouzijes pro develop)
- release/build pro produkci bys mel delat z git tagu - opet pri jeho push mas jeho jmeno v CI

i kdyby nic jinyho tak ten commit hash stejne nekam do toho image dej, treba jen do textaku.
Děkuji za možnost editace příspěvku.

Re:CI GITLAB deploy pomocí tagu - ale pokaždé jíného
« Odpověď #10 kdy: 18. 02. 2020, 09:39:56 »
Poslední varianta je ta, že budu mít větve TEST a PRODUCTION do kterých nepůjde pushovat, ale do testu se bude dělat nerve z mastera a do production se bude dělat merge z testu pouze. Na obou větvích budu mít nastavený pomocí CI automaticky deploy při merge. Je to tak použitelné?

Čeho chci docílit je to že nikdo nebude mít přímo přístup na produkční server, jediná možnost jak se tam dostane nový kód bude pomocí gitlabu a nerve do production větve. Tedy vždy bude vidět kdo a co a kdy udělal.

Re:CI GITLAB deploy pomocí tagu - ale pokaždé jíného
« Odpověď #11 kdy: 18. 02. 2020, 17:48:11 »
porad nejak nechapu co presne resis. je uplne jedno jak se branch jmenujou. protected branches v gitlabu jsou.

Ze bych neco tlacil na produkci jinak nez pres CI (a je jedno jestli gitlab nebo treba jenkins) je pro me nepredstavitelne.

mrkni treba na "gitflow"
Děkuji za možnost editace příspěvku.

Re:CI GITLAB deploy pomocí tagu - ale pokaždé jíného
« Odpověď #12 kdy: 18. 02. 2020, 19:23:26 »
Já s gitem a už vůbec ne v produkci nemám žádnou zkušenost. Posledních šest let všechno nahráváme na produkci přes FTP (teda SFTP). Teď se snažíme to změnit. Tedy všechen kód jet přes Git a pak přes gitlab delat automaticky upload na produkci.

Řeším to pro to že nevím jak se to dělá. Takže si to nějak najdu ale každý to používá jinak a já se ptám jak se to obvykle používá. Jednou a tím začít musim ;-)

A ano, je jedno jak se ty větve jmenuji ...

Jenkinse neznám, kouknu také ale nerad bych se do toho zamotal, takže asi bych zůstal u gitlabu zatim. a ano protected branches už jsem nastudoval, to už nám šlape delší dkbu. Díky.

Re:CI GITLAB deploy pomocí tagu - ale pokaždé jíného
« Odpověď #13 kdy: 18. 02. 2020, 20:13:43 »
na jenkins se vybodni, to bys ztratil hlavu uplne. daval jsem ho jako priklad, ze neni jen gitlab-ci.

Nenasla by firma par tisic na nekolikahodinovou placenou konzultaci s nekym kdo se v tom vyzna? Abys mu ukazal jak jste to delali, on by ti pak lehce ukazal co a jak. Radit takhle korespondencne je zbytecne komplikovany.
Děkuji za možnost editace příspěvku.

Re:CI GITLAB deploy pomocí tagu - ale pokaždé jíného
« Odpověď #14 kdy: 18. 02. 2020, 22:27:51 »
Nasla samozrejme, o to nejde. Jsou veci na ktere si pozvu nekoho, jsou veci ktere proste chci zkusit nejdriv sam :-) tady si myslim ze (oproti aktualnimu stavu) nic moc nepokazim. Myslim ze jsem posbiral dost informaci (nejen zde), abych mohl nejak zacit. Za tyden je u nas workshop ohledne gitu pro zacatecniky i pokrocile, takze se tam pujdem s kolegou porozhlednout.

Kdyz si vsechno necham udelat, tak nebudu nic umet :-) tak uvidime, treba tuhle vec zvladneme sami nakonec a treba ne a nekoho najmeme, penize opravdu nejsou problem ...