Gitlab↵
Gitlab CE1 se koristi kao centralna lokacija za menadžment izvornog koda (source code) i za isporuku komponenti LOBE servisa u različita okruženja (CI/CD).
Organizacija projekata↵
Gitlab LOBE grupa sadrži sve komponente LOBE servisa, osnovne i suportivne u obliku zasebnih Gitlab projekata.
Projekat LOBE/lobe (http://gitlab.nil.rs/LOBE/lobe) služi kao organizacioni git projekat i omogućava lakšu inicijalizaciju - svi drugi LOBE projekti su referirani unutar ovog projekta korišćenjem git submodula3.
Da bi se napravila lokalna kopija svih projekata koji su deo LOBE-a sa poslednjim izmenama, izvršavaju se sledeće komande:
1 2 3 | git clone --recursive <GITLAB_URL>/LOBE/lobe cd lobe ./scripts/Update-GitSubmodules.ps1 |
Upozorenje
Komande zahtevaju instaliran git CLI klijent: choco install git
Lista svih submodula može se videti komandom git submodule
unutar lobe
repozitorijuma:
PS c:\lobe> git submodule be15d60 core/lobe-rest (heads/master) d831a97 core/lobe-web (d831a97) ded36f6 docs (ded36f6) c8a2b0c infrastructure/elastic-logstash-kibana (c8a2b0c) 41dab1b infrastructure/influxdb-grafana (41dab1b)
Automatski build i deploy↵
Kako se isti izvorni kod izvršava u svim LOBE okruženjima, specifičnosti svakog okruženja podešavanju se varijablama okruženja (environment variables) koje se definišu u .gitlab-ci.yml
2 fajlovima u sekciji variables
.
Gitlab nativno podržava asocijaciju job-ova sa okruženjima 4 preko definicije environment-a. Lista svih definisanih okruženja je vidljiva iz Gitlab web interfejsa i generalno se jednim klikom željena verzija koda može isporučiti na bilo koje okruženje uz odgovarajuća domenska ovlašćenja.
Upravljanje deploymentima kroz commit poruke↵
Na Gitlab pipeline-u su omogućeni servisi tzv. sekretarice.
Sekretarica radi tako što su svi Gitlab job-ovi postavljeni na manuleni trigger da bi njima moglo da se upravlja specijalnom sintaksom kroz git commit poruke.
Funkcionalnosti sekretarice:
- Pokretanje jednog ili više job-ova, ignorisanje job-ova, vođenje računa o kontekstu izvršavanja (manual, scheduled itd.)
- Prihvatanje ulaza kroz commit poruke koje precizno određuje kako se job-ovi izvršavaju
- Ekstenzibilnost kroz plugin sistem u Powershell-u
- Mogućnost setovanje build varijabli kroz commit poruke
- Prikazivanje upustva za upotrebu prilikom pozivanja sa listanjem svih mogućih operacija
Više detalja je dostupno na lokaciji infrastructure\gitlab\secretary\README.md
Vidi takođe
--> Suprotivni servisi
--> Git