juoksijoiden määrittäminen gitlabissa
- Juoksutyypit
- jaetut juoksijat
- miten jaetut juoksijat valitsevat työpaikat
- mahdollistavat jaetut juoksijat
Poista jaetut juoksijat
- jaetut juoksijat
- luo ryhmäjuoksija
- Keskeytä tai Poista ryhmä juoksija
Katso ja hallitse ryhmäjuoksijoita
- luo tietty juoksija
- ota tietty juoksija käyttöön tiettyyn projektiin
- Estä tietyn juoksijan ottaminen käyttöön muissa projekteissa
- Estä juoksijoita paljastamasta arkaluontoisia tietoja
- haarukat
- Hyökkäysvektorit juoksijoissa
- Nollaa juoksijan rekisteröintitunnus projektille
- Määritä jaetun juoksijan IP-osoite
- määritä tietyn juoksijan IP-osoite
- juoksija juoksee vain merkittyjä töitä
- runner saa suorittaa untagged-töitä
- Git-strategia
- git checkout
- Git clean flags
- Shallow cloning
- Custom build directories
- handling concurrency
- polut
- työvaiheyritykset
Gitlab CI/CD: ssä juoksijat juoksevat .gitlab-ci.yml
.Runner on kevyt, erittäin skaalautuva agentti, joka poimii CI-työn GitLab CI/CD: n KOORDINAATTORIRAJAPINNAN kautta, suorittaa työn ja lähettää tuloksen takaisin GitLab-instanssiin.
juoksijat ovat ylläpitäjän luomia ja ne näkyvät Gitlabin käyttöliittymässä.Runners voi olla erityinen tietyille hankkeille tai saatavilla kaikille hankkeille.
tämä dokumentaatio keskittyy runnereiden käyttöön Gitlabissa.Jos haluat asentaa ja määrittää Gitlab Runnerin, katso GitLab Runnerin dokumentaatio.
- type of runners
- jaetut juoksijat
- miten jaetut juoksijat poimivat työt
- mahdollistavat jaetut juoksijat
- Poista jaetut juoksijat käytöstä
- Ryhmäjuoksijat
- luo ryhmäjuoksija
- Katso ja hallitse ryhmäjuoksijoita
- Keskeytä tai poista ryhmäjuoksija
- tietyt juoksijat
- luo tietty juoksija
- Ota käyttöön tietty juoksija tiettyyn projektiin
- Estä tietyn juoksijan ottaminen käyttöön muissa projekteissa
- tyhjennä juoksuvälimuisti manuaalisesti
- Aseta juoksijalle suurin työaika
- ole varovainen arkaluonteisten tietojen kanssa
- Estä juoksijoita paljastamasta arkaluontoisia tietoja
- haarukoi
- juoksijoiden Hyökkäysvektorit
- Nollaa projektin juoksijan rekisteröintitunniste
- Määritä GitLab 10.6: ssa käyttöön otetun juoksijan IP-osoite
- Määritä jaetun juoksijan IP-osoite
- Määritä tietyn juoksijan IP-osoite
- käytä tageja rajoittaaksesi työn määrää käyttämällä juoksijaa
- runner runs only tagged jobs
- runner saa ajaa untagged-töitä
- määritä juoksijan käyttäytyminen muuttujilla
- Git-strategia
- Git submodule strategy
- Git checkout
- Git clean flags
- git fetch extra flags
- Shallow cloning
- Custom build directories
- samanaikaisuuden käsittely
- sisäkkäiset polut
- työvaiheyritykset
- järjestelmäkutsuja ei ole saatavilla GitLab.com jaetut juoksijat
- artefakti-ja välimuistiasetukset
type of runners
GitLab UI-käyttöliittymässä on kolmenlaisia juoksijoita sen mukaan, kenet haluat käyttöön:
- jaetut juoksijat ovat kaikkien ryhmien ja projektien käytettävissä GitLab-instanssissa.
- Ryhmäjuoksijat ovat kaikkien ryhmän projektien ja alaryhmien käytettävissä.
- tietyt juoksijat liittyvät tiettyihin projekteihin.Tyypillisesti tiettyjä juoksijoita käytetään projektiin kerrallaan.
jaetut juoksijat
jaetut juoksijat ovat jokaisen projektin käytettävissä GitLab-instanssissa.
käytä jaettuja juoksijoita, kun sinulla on useita samantyyppisiä töitä. Sen sijaan, että sinulla on useita juoksijoita joutokäynnillä monissa projekteissa, voit olla muutamia juoksijoita, jotka käsittelevät useita projekteja.
Jos käytät gitlabin itseohjautuvaa instanssia:
- järjestelmänvalvoja voi asentaa ja rekisteröidä jaettuja runnereita siirtymällä projektisi asetuksiin > CI / CD, laajentamalla Runners-osiota ja klikkaamalla Show Runnerin asennusohjeita.Nämä ohjeet löytyvät myös dokumentaatiosta.
- ylläpitäjä voi myös määrittää jaettujen runner pipeline-minuuttien enimmäismäärän kullekin ryhmälle.
Jos käytät GitLab.com:
- voit valita gitlabin ylläpitämästä jaettujen juoksijoiden listasta.
- jaetut juoksijat kuluttavat tilillesi sisältyvät putkilinjat.
miten jaetut juoksijat poimivat työt
jaetut juoksijat prosessoivat työt reilun käyttöjonon avulla. Tämä jono estää hankkeita luomasta satoja työpaikkoja ja käyttämästä kaikkia saatavilla olevia juoksuresursseja.
fair usage queue-algoritmi määrittää työpaikat niiden projektien perusteella, joissa on jaetuilla runnereilla jo nyt vähiten töitä.
Esimerkki 1
Jos nämä työpaikat ovat jonossa:
- Job 1 projektille 1
- Job 2 projektille 1
- Job 3 projektille 2
- Job 5 projektille 2
- job 6 projektille 3
reilun käytön algoritmi määrää työpaikat tässä järjestyksessä:
- Job 1 valitaan ensimmäisenä, koska sillä on pienin työnumero projekteista, joissa ei ole käynnissä olevia töitä (eli kaikki projektit).
- työpaikka 4 on seuraava, koska 4 on nyt pienin työpaikkamäärä projekteista, joissa ei ole käynnissä olevia töitä (projekti 1: ssä on työ käynnissä).
- työpaikka 6 on seuraava, koska 6 on nyt pienin työpaikkamäärä projekteista, joissa ei ole käynnissä olevia töitä (projekteissa 1 ja 2 on työpaikkoja käynnissä).
- työ 2 on seuraava, koska hankkeista, joissa on vähiten töitä käynnissä (kussakin on 1), se on pienin työn määrä.
- seuraavana On Job 5, koska hankkeessa 1 on nyt käynnissä 2 työpaikkaa ja Job 5 on pienin jäljellä oleva työpaikkojen lukumäärä hankkeiden 2 ja 3 välillä.
- lopulta on Job 3… koska se on ainoa jäljellä oleva työ.
Esimerkki 2
Jos nämä työpaikat ovat jonossa:
- Job 1 projektille 1
- Job 2 projektille 1
- Job 3 projektille 2
- Job 5 projektille 2
- Job 6 projektille 3
reilun käytön algoritmi määrää työpaikat tässä järjestyksessä:
- työpaikka 1 valitaan ensimmäisenä, koska sillä on pienin työnumero projekteista, joissa ei ole käynnissä olevia töitä (eli kaikki projektit).
- lopetimme työn 1.
- työ 2 on seuraava, koska Työn 1 päätyttyä kaikissa projekteissa on jälleen 0 työtä käynnissä, ja 2 on pienin mahdollinen työnumero.
- seuraavana On Job 4, Sillä kun projekti 1: ssä on käynnissä työpaikka, 4 on pienin luku hankkeista, joissa ei ole yhtään työpaikkaa (hankkeet 2 ja 3).
- lopetimme työn 4.
- työ 5 on seuraava, koska työn 4 päätyttyä projekti 2: lla ei ole enää töitä käynnissä.
- Job 6 on seuraava, koska projekti 3 on ainoa projekti, jossa ei ole käynnissä olevia töitä.
- lopuksi valitsemme työn 3… koska se on jälleen ainoa jäljellä oleva työ.
mahdollistavat jaetut juoksijat
On GitLab.com, jaetut juoksijat ovat käytössä kaikissa bydefault-projekteissa.
itse hallinnoiduissa gitlabin instansseissa järjestelmänvalvojan on asennettava ja rekisteröitävä ne.
voit ottaa käyttöön myös jaetut juoksijat yksittäisiin projekteihin.
yhteiskäyttöiset juoksijat käyttöön:
- Siirry projektin asetuksiin > CI / CD ja laajenna juoksijat-osio.
- valitse Ota jaetut suorittimet käyttöön tässä projektissa.
Poista jaetut juoksijat käytöstä
voit poistaa jaetut juoksijat käytöstä yksittäisissä projekteissa tai ryhmissä.Sinulla on oltava käyttöoikeudet projektille tai ryhmälle.
Jos haluat poistaa jaetut runnerit käytöstä projektissa:
- Siirry projektin asetuksiin > CI / CD ja laajenna Runners-osio.
- valitse jaetut juoksijat-alueelta ota jaetut juoksijat käyttöön tälle projektille, jotta vaihto harmaantuu.
jaetut juoksijat ovat automaattisesti pois käytöstä projektissa:
- , Jos emoryhmän jaetut juoksijat-asetus on poistettu käytöstä, ja
- , Jos tämän asetuksen ohittaminen ei ole sallittua projektitasolla.
Jos haluat poistaa jaetut juoksijat ryhmästä:
- siirry ryhmän asetuksiin > CI / CD ja laajenna juoksijat-osio.
- ota jaetut juoksijat-alue pois päältä tässä Ryhmätapahtumassa.
- valinnaisesti, jotta jaetut suoritukset voidaan ottaa käyttöön yksittäisissä projekteissa tai alaryhmissä,valitse Salli projektit ja aliryhmät ohittaaksesi ryhmäasetuksen.
Ryhmäjuoksijat
käytä Ryhmäjuoksijoita, kun haluat kaikkien ryhmän projektien saavan käyttöönsä joukon juoksijoita.
Ryhmäjuoksijat käsittelevät työt käyttämällä first in, first out (FIFO) – jonoa.
luo ryhmäjuoksija
voit luoda ryhmäjuoksijan itse hallinnoimaasi GitLab-instanssiin tai GitLab.com-instanssiin.sinulla täytyy olla ryhmän omistajan oikeudet.
ryhmäjuoksijan luominen:
- Asenna Gitlab-juoksija.
- mene ryhmään, jossa haluat juoksijan toimivan.
- Mene asetuksiin > CI / CD ja laajenna juoksijat-osio.
- huomaa URL ja token.
- rekisteröi juoksija.
Katso ja hallitse ryhmäjuoksijoita
käyttöön Gitlabissa 13.2.
voit tarkastella ja hallita kaikkia ryhmän, sen alaryhmien ja projektien runnereita.Voit tehdä tämän itseohjautuvalle GitLab-instanssillesi tai GitLab.com-instanssille.sinulla on oltava ryhmän omistajan oikeudet.
- mene ryhmään, jossa haluat nähdä juoksijat.
- Mene asetuksiin > CI / CD ja laajenna juoksijat-osio.
-
seuraavat kentät näkyvät
attribuutti kuvaus Type yksi tai useampi seuraavista valtioista: jaettu, ryhmä, erityinen, lukittu tai keskeytetty Runner token Token, jota juoksija käyttää viestiäkseen GitLab-instanssin kanssa kuvaus kuvaus, joka annetaan juoksijalle, kun se luotiin versio GitLab Runner version IP-osoite sen isännän IP-osoite, johon juoksija on rekisteröity hankkeet niiden hankkeiden lukumäärä, joihin juoksija on määrätty työpaikat juoksijan hoitamat työpaikat yhteensä tagit tagit, jotka liittyvät juoksijaan viimeinen yhteys aikaleima, joka osoittaa, milloin GitLab-instanssi on viimeksi ottanut yhteyttä juoksijaan
tältä sivulta voit muokata, keskeyttää ja poistaa runnereita ryhmästä, sen alaryhmistä ja projekteista.
Keskeytä tai poista ryhmäjuoksija
voit keskeyttää tai poistaa ryhmäjuoksun itse hallinnoimassasi GitLab-instanssissa tai GitLab.com-instanssissa.sinulla on oltava ryhmän omistajan oikeudet.
- mene ryhmään, jonka haluat poistaa tai keskeyttää juoksijan.
- Mene asetuksiin > CI / CD ja laajenna juoksijat-osio.
- Napsauta Pause tai poista runner.
- jos keskeytät ryhmäjuoksun, jota käytetään useissa projekteissa, juoksija keskeyttää kaikki projektit.
- ryhmänäkymästä et voi poistaa Runneria, joka on määrätty useampaan kuin yhteen projektiin.Sinun täytyy poistaa se kustakin projektista ensin.
- vahvistusikkunassa klikkaa OK.
tietyt juoksijat
käytä tiettyjä juoksijoita, kun haluat käyttää juoksijoita tiettyihin projekteihin. Esimerkiksi, kun sinulla on:
- työt, joissa on erityisiä vaatimuksia, kuten käyttöönottotyö, joka vaatii tunnistetietoja.
- hankkeet, joissa on paljon sisäkorvaistutetta ja jotka voivat hyötyä siitä, että ovat erillään muista juoksijoista.
voit asettaa tietyn juoksijan, jota käytetään useissa projekteissa. Kunkin hankkeen on oltava erikseen käytössä.
tietyt juoksijat käsittelevät työt käyttämällä first in, first out (FIFO) – jonoa.
luo tietty juoksija
voit luoda tietyn juoksijan itse hallinnoimaasi GitLab-instanssiin tai GitLab.com-instanssiin.sinulla on oltava käyttöoikeudet projektiin.
tietyn juoksijan luominen:
- Asenna juoksija.
- Siirry projektin asetuksiin > CI / CD ja laajenna Runners-osio.
- huomaa URL ja token.
- rekisteröi juoksija.
Ota käyttöön tietty juoksija tiettyyn projektiin
tietty juoksija on käytettävissä projektissa, jota varten se luotiin. Ylläpitäjä voi hakea tiettyä julkaisijaa lisäprojekteihin.
- sinulla täytyy olla Omistajanoikeudet projektiin.
- tiettyä juoksijaa ei saa lukita.
tietyn juoksijan ottaminen käyttöön tai poistaminen käytöstä projektissa:
- Siirry projektin asetuksiin > CI / CD ja laajenna juoksulenkit-osio.
- Napsauta tämän projektin ota käyttöön tai poista tämä projekti käytöstä.
Estä tietyn juoksijan ottaminen käyttöön muissa projekteissa
voit määrittää tietyn juoksijan niin, että se on ”lukittu” eikä sitä voi ottaa käyttöön muissa projekteissa.Tämä asetus voidaan ottaa käyttöön,kun rekisteröit Runnerin ensimmäisen kerran, mutta sitä voidaan myös muuttaa myöhemmin.
lukita tai avata juoksija:
- Siirry projektin asetuksiin > CI / CD ja laajenna juoksuosuus.
- Etsi juoksija, jonka haluat lukita tai avata. Varmista, että se on päällä.
- klikkaa kynänappia.
- Tarkista Lukko nykyisiin projekteihin-asetus.
- napsauta Tallenna muutokset.
tyhjennä juoksuvälimuisti manuaalisesti
Lue välimuistin tyhjentäminen.
Aseta juoksijalle suurin työaika
jokaiselle juoksijalle voit määrittää maksimityöajan. Tämä aikalisä, jos se on pienempi kuin projektin määrittelemä aikalisä, on etusijalla.
tätä ominaisuutta voidaan käyttää estämään se, että jaettu juoksijasi hukkuu projektiin, jossa on töitä, joissa on pitkä aikalisä (esimerkiksi viikko).
kun ohjelmaa ei ole määritetty, suoritin ei ohita projektin aikakatkaisua.
On GitLab.com, et voi ohittaa jaettujen juoksijoiden työaikakatkaisua ja sinun on käytettävä projektin määritettyä aikakatkaisua.
suurimman työajan asettamiseksi:
- projektissa, Mene asetuksiin > CI/CD > juoksijat.
- Valitse oma juoksijasi muokataksesi asetuksia.
- syötä arvo työajan enimmäiskeston alle.
- valitse Tallenna muutokset.
miten tämä ominaisuus toimii:
Esimerkki 1 – juoksijan aikalisä suurempi kuin projektin aikalisä
- asetat juoksijan työajan maksimimäärän 24 tuntiin
- asetat CI/CD – aikalisän projektille 2 tuntiin
- aloitat työn
- työ, jos juoksu kestää kauemmin, aikalisä 2 tunnin jälkeen
Esimerkki 2 – juoksijan aikalisä ei ole määritetty
- poistat maksimimäärän työn aikalisäasetukset juoksijalta
- asetat CI/CD-aikalisän projektille 2 tunniksi
- aloitat työn
- työ, jos juoksu kestää kauemmin, aikalisä 2 tunnin jälkeen
esimerkki 3-juoksija aikalisä pienempi kuin projektin aikalisä
- asetat juoksijan maksimityöajan 30 minuuttiin
- asetat CI/CD-aikalisän projektille 2 tuntiin
- aloitat työn
- työ, jos juoksu kestää kauemmin, ajat pois 30 minuutin jälkeen
ole varovainen arkaluonteisten tietojen kanssa
joidenkin juoksijan suorittajien kanssa,jos voit suorittaa työn juoksijalla, voit Hanki täysi pääsy tiedostojärjestelmään,ja siten mikä tahansa koodi, jota se suorittaa, sekä juoksijan merkki. Jaetuilla juoksijoilla tämä tarkoittaa sitä, että kuka tahansa, joka suorittaa juoksijan töitä, voi käyttää kenen tahansa muun koodia, joka toimii therunnerilla.
lisäksi, koska pääset käsiksi juoksijatunnukseen, on mahdollista luoda juoksijasta klooni ja lähettää esimerkiksi vääriä töitä.
yllä oleva on helppo välttää rajoittamalla jaettujen runnerson large public GitLab-instanssien käyttöä, valvomalla GitLab-instanssin käyttöoikeuksia ja käyttämällä turvallisempia runner executoreja.
Estä juoksijoita paljastamasta arkaluontoisia tietoja
käyttöön Gitlab 10.0: ssa.
juoksijoita voi suojata niin, etteivät he paljasta arkaluontoisia tietoja.Kun juoksija on suojattu, hän valitsee vain suojatuille sivukonttoreille tai suojatuille tunnisteille luodut työpaikat ja jättää muut työt huomioimatta.
juoksijan suojaaminen tai suojaaminen:
- Siirry projektin asetuksiin > CI / CD ja laajenna juoksijat-osio.
- Etsi suojattava tai suojaamaton juoksija. Varmista, että se on päällä.
- klikkaa kynänappia.
- Tarkista suojattu vaihtoehto.
- napsauta Tallenna muutokset.
haarukoi
aina kun projektia haarukoidaan, se kopioi siihen liittyvien töiden asetukset. Tämä tarkoittaa, että jos olet määrittänyt jaetut juoksijat projektia varten ja jos joku haarukoi kyseisen projektin, jaetut juoksijat palvelevat tämän projektin työpaikkoja.
juoksijoiden Hyökkäysvektorit
mainittiin lyhyesti aiemmin, mutta seuraavia asioita juoksijoista voidaan hyödyntää.Etsimme aina panoksia, jotka voivat lieventää näitä turvallisuusnäkökohtia.
Nollaa projektin juoksijan rekisteröintitunniste
Jos luulet, että projektille on paljastunut rekisteröintitunniste, sinun pitäisi asettaa se uudelleen. Polettia voidaan käyttää toisen juoksijan rekisteröimiseen projektiin. Tätä uutta runnermayta voidaan sitten käyttää salaisten muuttujien arvojen hankkimiseen tai projektikoodin kloonaamiseen.
Tokenin nollaamiseksi:
- Siirry projektin asetuksiin > CI / CD.
- Laajenna yleiset putkistojen asetukset-osiota.
- Etsi Runner token-lomakekenttä ja napsauta Reveal value-painiketta.
- Poista arvo ja tallenna lomake.
- kun sivu on päivitetty, laajenna Runners settings – osio ja tarkista rekisteröintitunnus-sitä pitäisi muuttaa.
tästä eteenpäin vanha merkki ei ole enää voimassa eikä se rekisteröi uusia juoksijoita hankkeeseen. Jos käytät työkaluja uusien rahakkeiden tarjoamiseen ja rekisteröimiseen, näissä työkaluissa käytettävät rahakkeet olisi päivitettävä vastaamaan uuden rahakkeenarvoa.
Määritä GitLab 10.6: ssa käyttöön otetun juoksijan IP-osoite
.
voi olla hyödyllistä tietää juoksijan IP-osoite, jotta voit tehdä vianmäärityksen kyseisen juoksijan kanssa. GitLab tallentaa ja näyttää IP-osoitteen tarkastelemalla HTTP-pyyntöjen lähdettä, jonka se tekee gitlabille työtä tehdessään. IP-osoite pidetään aina ajan tasalla, joten jos runner IP muuttaa sitä automaattisesti päivittyy gitlabiin.
jaettujen juoksijoiden ja tiettyjen juoksijoiden IP-osoite löytyy välinpitämättömistä paikoista.
Määritä jaetun juoksijan IP-osoite
nähdäksesi jaetun juoksijan IP-osoitteen sinulla on oltava järjestelmänvalvojan pääsy GitLab-instanssiin. Voit selvittää tämän:
- käy Admin Area > Overview > Runners.
- Etsi juoksijaa taulukosta ja sinun pitäisi nähdä IP-osoitteen sarake.
Määritä tietyn juoksijan IP-osoite
, jotta voit löytää juoksijan IP-osoitteen tietylle projektille, sinulla on oltava projektin omistajan oikeudet.
- Siirry projektin asetuksiin > CI / CD ja laajenna Runners-osio.
- tietosivulla kannattaa nähdä IP-osoitteen rivi.
käytä tageja rajoittaaksesi työn määrää käyttämällä juoksijaa
sinun täytyy asettaa juoksija, jotta voit suorittaa kaikki erityyppiset työt, joita se voi kohdata yhteisissä projekteissa. Tämä olisi ongelmallista suurille määrille hankkeita, jos se ei olisi tägejä.
GitLab CI-tunnisteet eivät ole samoja kuin Git-tunnisteet. GitLab CI-tunnisteet liittyvät juoksijoihin.Git-tunnisteet liitetään pysyviin toimituksiin.
merkitsemällä juoksijan sen tyyppisiin tehtäviin, joita se pystyy hoitamaan, voit saada varmat juoksijat juoksemaan vain ne työt, joihin heillä on valmiudet juosta.
esimerkiksi Gitlabissa on juoksijat merkittynä rails
, jos niissä on asianmukaiset riippuvuudet Kiskotestien ajamiseen.
Kun rekisteröit juoksijan, sen oletuskäyttäytyminen on vain picktagged jobs.To muuta tätä, sinulla on oltava käyttöoikeudet projektille.
juoksijan saa valitsemaan sitomattomia töitä:
- Siirry projektin asetuksiin > CI / CD ja laajenna Runners-osio.
- Etsi valitsemasi juoksija ja varmista, että se on käytössä.
- klikkaa kynänappia.
- Tarkista Run untagged jobs-vaihtoehto.
- napsauta Tallenna muutokset-painiketta, jotta muutokset tulevat voimaan.
alla on muutamia esimerkkiskenaarioita eri variaatioista.
runner runs only tagged jobs
seuraavat esimerkit havainnollistavat mahdollista vaikutusta siihen, että juoksija on setto run only tagged jobs.
Esimerkki 1:
- juoksija on määritetty suorittamaan vain merkittyjä töitä ja sillä on
docker
tagi. - työ, jossa on
hello
tagi suoritetaan ja jumissa.
Esimerkki 2:
- juoksija on määritetty juoksemaan vain merkittyjä töitä ja sillä on
docker
tagi. - tehtävä, jossa on
docker
tagi suoritetaan ja ajetaan.
esimerkki 3:
- juoksija on konfiguroitu suorittamaan vain merkittyjä töitä ja sillä on
docker
tagi. - työ, jossa ei ole määriteltyjä tageja, suoritetaan ja jumitetaan.
runner saa ajaa untagged-töitä
seuraavat esimerkit havainnollistavat mahdollisia vaikutuksia sillä, että juoksija on setto run tagged ja untagged jobs.
Esimerkki 1:
- juoksija on konfiguroitu suorittamaan viimeistelemättömiä töitä ja sillä on
docker
tagi. - työ, jossa ei ole määriteltyjä tageja, suoritetaan ja ajetaan.
- toinen työ, jossa on
docker
tag määritelty, suoritetaan ja ajetaan.
Esimerkki 2:
- runner on määritetty suorittamaan viimeistelemättömiä töitä eikä sille ole määritelty tageja.
- työ, jossa ei ole määriteltyjä tageja, suoritetaan ja ajetaan.
- toinen työ, jossa on
docker
tag määritelty, on jumissa.
määritä juoksijan käyttäytyminen muuttujilla
voit käyttää CI/CD muuttujia juoksijan Gitin käyttäytymisen määrittämiseen joko paikallisesti tai yksittäisissä tehtävissä:
-
GIT_DEPTH
(shallow cloning) -
GIT_CLONE_PATH
(custom build directories)
GIT_STRATEGY
GIT_SUBMODULE_STRATEGY
GIT_CHECKOUT
GIT_CLEAN_FLAGS
li>GIT_FETCH_EXTRA_FLAGS
voit myös määrittää muuttujien avulla, kuinka monta kertaa runnerattinen suorittaa tiettyjä työn suorittamisen vaiheita.
Git-strategia
- esiteltiin GitLab 8.9: ssä kokeellisena ominaisuutena.
-
GIT_STRATEGY=none
vaatii GitLab-juoksijan v1.7+.
voit asettaa GIT_STRATEGY
, jota käytetään arkiston sisällön hakemiseen, eitherglobaalisesti tai tehtäväkohtaisesti variables
section:
variables: GIT_STRATEGY: clone
mahdollisia arvoja on kolme: clone
fetch
janone
. Jos työpaikat jätetään määrittelemättä,ne käyttävät hankkeen putkiasetusta.
clone
on hitain vaihtoehto. Se kloonaa arkiston tyhjästä jokaista työtä varten varmistaen, että paikallinen työkopio on aina koskematon.Jos olemassa oleva työpiste löytyy, se poistetaan ennen kloonausta.
fetch
on nopeampi, koska se käyttää paikallista työkopiota uudelleen (palataan clone
, jos sitä ei ole olemassa). git clean
käytetään viimeisimmän työn tekemien muutosten perumiseen, ja git fetch
käytetään hakemaan viimeisen suoritetun työn jälkeen tehdyt muutokset.
kuitenkin fetch
edellyttää pääsyä edelliseen työpöytään. Tämä workswell kun käytetään shell
tai docker
executor koska thesetry säilyttää työtrees ja yrittää käyttää niitä oletuksena uudelleen.
tällä on rajoituksia Docker Machine Executorin käytössä.
se ei toimi kubernetes
toimeenpanija,mutta ominaisuusehdotus on olemassa.kubernetes
toimeenpanija kloonaa aina väliaikaiseen hakemistoon.
none
käyttää myös paikallista työkopiota uudelleen, mutta ohittaa kaikki gitoperaatiot, jotka GitLab normaalisti tekee. GitLab Runner pre-clone skriptit ohitetaan myös, jos läsnä. Tämä strategia voi tarkoittaa, että sinun täytyy lisätä fetch
ja checkout
komentoja .gitlab-ci.yml
komentosarjaan.
sitä voidaan käyttää yksinomaan artefakteilla toimiviin töihin, kuten käyttöönottotyöhön.Git-arkiston tietoja voi olla, mutta ne ovat todennäköisesti vanhentuneita. Sinun pitäisi vain vain tiedostoja, jotka on tuotu paikalliseen työkopioon välimuistista tai esineistä.
Git submodule strategy
vaatii Gitlab Runner v1.10+.
GIT_SUBMODULE_STRATEGY
muuttujaa käytetään ohjaamaan, sisältyvätkö / miten Gitsubmodulit noudettaessa koodia ennen koontia. Voit asettaa ne joko globaalisesti tai tehtäväkohtaisesti variables
– osioon.
mahdollisia arvoja on kolme: none
normal
, ja recursive
:
-
none
tarkoittaa, että alimodules eivät sisälly noudettaessa Projektikoodia. Tämä on oletusarvo, joka vastaa ennen v1.10-käyttäytymistä.
normal
tarkoittaa, että mukaan lasketaan vain ylätason alimodulit. Se vastaa:
git submodule syncgit submodule update --init
recursive
tarkoittaa, että kaikki alimodulit (myös alimodulit)ovat mukana. Tämä ominaisuus tarvitsee Git v1.8.1: n ja uudemmat. Kun käytät aGitLab Runneria sellaisen suorittajan kanssa, joka ei perustu Dockeriin, varmista, että git versionmeetsittää tämän vaatimuksen. Se vastaa:
git submodule sync --recursivegit submodule update --init --recursive
jotta tämä ominaisuus toimisi oikein, alimodulit on konfiguroitava (.gitmodules
) joko:
- julkisesti saatavilla olevan arkiston HTTP(S)-URL-osoite tai
- suhteellinen polku toiseen arkistoon samalla GitLab-palvelimella. Katso git submodules-dokumentaatio.
Git checkout
käyttöön Gitlab Runnerissa 9.3.
GIT_CHECKOUT
muuttujaa voidaan käyttää, kun GIT_STRATEGY
on asetettu jokoclone
tai fetch
määrittelemään, onko git checkout
tulisi ajaa. Jos sitä ei ole määritetty, oletusarvo on true. Voit asettaa ne globaalisti tai tehtäväkohtaisestivariables
– osiossa.
Jos asetettu false
, juoksija:
- tehdessään
fetch
– päivittää arkiston ja jättää työkopion nykyiseen versioon, - tehdessään
clone
– kloonaa arkiston ja jättää työkopion haaraan.
Jos GIT_CHECKOUT
on asetettu true
, sekä clone
että fetch
toimivat samalla tavalla.Juoksija tarkistaa SISÄKORVAISTUTUSPUTKISTOON liittyvän version työkopion:
variables: GIT_STRATEGY: clone GIT_CHECKOUT: "false"script: - git checkout -B master origin/master - git merge $CI_COMMIT_SHA
Git clean flags
Introduced in GitLab Runner 11.10
GIT_CLEAN_FLAGS
muuttujaa käytetäängit clean
tarkistettuaan lähteet. Voit asettaa sen globaalisti tai tehtäväkohtaisestivariables
– osiossa.
GIT_CLEAN_FLAGS
hyväksyy kaikki mahdolliset git clean
komennon vaihtoehdot.
git clean
on pois käytöstä, jos GIT_CHECKOUT: "false"
on määritelty.
If GIT_CLEAN_FLAGS
is:
- Ei määritelty,
git clean
liput-ffdx
. - koska arvo
none
git clean
ei suoriteta.
esimerkiksi:
variables: GIT_CLEAN_FLAGS: -ffdx -e cache/script: - ls -al cache/
git fetch extra flags
Introduced in GitLab Runner 13.1.
GIT_FETCH_EXTRA_FLAGS
muuttujaa käytetään ohjaamaangit fetch
. Voit asettaa sen globaalisti tai tehtäväkohtaisesti variables
– osiossa.
GIT_FETCH_EXTRA_FLAGS
hyväksyy kaikki git fetch
komennon vaihtoehdot. GIT_FETCH_EXTRA_FLAGS
liput liitetään kuitenkin oletuslippujen perään, joita ei voi muokata.
oletusliput ovat:
- GIT_DEPTH.
- luettelo refspeceistä.
- kauko nimeltään
origin
.
Jos GIT_FETCH_EXTRA_FLAGS
is:
- Ei määritelty,
git fetch
liput--prune --quiet
yhdessä oletuslippujen kanssa. - koska arvo
none
git fetch
suoritetaan vain oletuslipuilla.
esimerkiksi oletusliput ovat --prune --quiet
, joten voit tehdä git fetch
monisanaisemmaksi ohittamalla tämän pelkällä --prune
:
variables: GIT_FETCH_EXTRA_FLAGS: --prunescript: - ls -al cache/
yllä oleva kokoonpano johtaa siihen, että git fetch
kutsutaan näin:
git fetch origin $REFSPECS --depth 50 --prune
missä $REFSPECS
on gitlabin juoksijalle sisäisesti antama arvo.
Shallow cloning
otettiin käyttöön GitLab 8.9: ssä kokeellisena ominaisuutena.
voit määrittää noudon ja kloonauksen syvyyden käyttämällä GIT_DEPTH
GIT_DEPTH
tekee pinnallisen kloonin arkistoon ja voi merkittävästi nopeuttaa cloning.It voi olla hyödyllistä arkistoille, joissa on suuri määrä toimituksia tai vanhoja, suuria binäärejä. Arvo on git fetch
ja git clone
.
Gitlab 12.0: ssa ja sitä uudemmissa projekteissa on automaattisesti git depth
arvo 50
.
Jos käytät syvyyttä 1
ja sinulla on jono työpaikkoja tai retryjobs, työt saattavat epäonnistua.
Gitin noutaminen ja kloonaaminen perustuu refiin, kuten haaran nimeen, joten runnerscan ei voi kloonata tiettyä commit SHA: ta. Jos jonossa on useita työtehtäviä tai olet hakemassa vanhaa työtä, testattavan sitoumuksen on oltava kloonatunhistorian sisällä. Liian pienen arvon asettaminen GIT_DEPTH
voi tehdä mahdottomaksi suorittaa näitä vanhoja toimituksia ja unresolved reference
näkyy työlokeissa. Tämän jälkeen kannattaa harkita uudelleen GIT_DEPTH
muuttamista suuremmaksi arvoksi.
työt, jotka perustuvat git describe
eivät välttämättä toimi oikein, kun GIT_DEPTH
issetillä on vain osa Git-historiasta.
noudetaan tai kloonataan vain viimeiset 3 toimitusta:
variables: GIT_DEPTH: "3"
voit asettaa sen globaalisti tai tehtäväkohtaisestivariables
jaksossa.
Custom build directories
käyttöön Gitlab Runnerissa 11.10.
oletuksena gitlab Runner kloonaa arkiston$CI_BUILDS_DIR
hakemiston ainutlaatuiseen alaryhmään. Projektisi saattaa kuitenkin vaatia koodin erityishakemistossa (esimerkiksi Go-projektit). Tällöin voit määrittää GIT_CLONE_PATH
muuttujan kertomaan juoksijalle therepositoryn kloonattavan hakemiston:
variables: GIT_CLONE_PATH: $CI_BUILDS_DIR/project-nametest: script: - pwd
GIT_CLONE_PATH
on aina oltava$CI_BUILDS_DIR
. Hakemisto asetettu$CI_BUILDS_DIR
riippuu Suorittaja ja kokoonpano runners.builds_dirsing.
tätä voidaan käyttää vain, kun custom_build_dir
on käytössä therunnerin konfiguraatiossa.Tämä on oletuskokoonpano docker
ja kubernetes
suorittajat.
samanaikaisuuden käsittely
suorittaja, joka käyttää 1
suurempaa samanaikaisuutta, saattaa johtaa epäonnistumisiin. Samassa hakemistossa saattaa työskennellä useita työpaikkoja, Jos builds_dir
jaetaan työpaikkojen kesken.
juoksija ei yritä estää tätä tilannetta. Ylläpitäjän ja kehittäjien on noudatettava runner-kokoonpanon vaatimuksia.
välttääksesi tämän skenaarion, voit käyttää yksilöllistä polkua $CI_BUILDS_DIR
, koska runnerex sisältää kaksi lisämuuttujaa, jotka antavat yksilöllisen ID
samanaikaisuuden:
-
$CI_CONCURRENT_ID
: yksilöllinen tunnus kaikille työtehtäville, jotka ovat käynnissä annettu toimeenpanija. -
$CI_CONCURRENT_PROJECT_ID
: yksilöivä tunnus kaikille työtehtäville, jotka ovat käynnissä kyseisessä toteuttajassa ja projektissa.
vakain kokoonpano, jonka pitäisi toimia hyvin missä tahansa skenaariossa ja millä tahansa executorilla $CI_CONCURRENT_ID
GIT_CLONE_PATH
. Esimerkiksi:
variables: GIT_CLONE_PATH: $CI_BUILDS_DIR/$CI_CONCURRENT_ID/project-nametest: script: - pwd
$CI_CONCURRENT_PROJECT_ID
tulisi käyttää yhdessä$CI_PROJECT_PATH
kuten$CI_PROJECT_PATH
antaa arkiston polun. Eligroup/subgroup/project
. Esimerkiksi:
variables: GIT_CLONE_PATH: $CI_BUILDS_DIR/$CI_CONCURRENT_ID/$CI_PROJECT_PATHtest: script: - pwd
sisäkkäiset polut
GIT_CLONE_PATH
arvoa laajennetaan kerran eikä pesimävariantteja tueta.
esimerkiksi.gitlab-ci.yml
file:
variables: GOPATH: $CI_BUILDS_DIR/go GIT_CLONE_PATH: $GOPATH/src/namespace/project
GIT_CLONE_PATH
laajennetaan kerran$CI_BUILDS_DIR/go/src/namespace/project
, ja tuloksena vikaantuminen, koska$CI_BUILDS_DIR
ei ole laajennettu.
työvaiheyritykset
käyttöön Gitlabissa, se vaatii Gitlab-juoksijan v1.9+.
voit asettaa niiden yritysten määrän, joita käynnissä oleva työ yrittää suorittaa seuraavissa vaiheissa:
muuttuja | kuvaus |
---|---|
ARTIFACT_DOWNLOAD_ATTEMPTS |
työn alla olevien artefaktien latausyritysten lukumäärä |
EXECUTOR_JOB_SECTION_ATTEMPTS |
gitlabissa 12.10 ja myöhemmin, kuinka monta yritystä suorittaa osa työssä No Such Container virhe (docker executor only). |
hakuyritysten lukumäärä | |
työtä suorittavan välimuistin palauttamisyritysten lukumäärä |
oletuksena on yksi yritys.
esimerkki:
variables: GET_SOURCES_ATTEMPTS: 3
voit asettaa ne globaalisti tai tehtäväkohtaisesti variables
jaksossa.
järjestelmäkutsuja ei ole saatavilla GitLab.com jaetut juoksijat
GitLab.com jaetut juoksijat juoksevat Coreosilla. Tämä tarkoittaa, että C-standardikirjastosta ei voi käyttää joitakin järjestelmäkutsuja, kuten getlogin
.
artefakti-ja välimuistiasetukset
otettiin käyttöön GitLab Runnerissa 13.9.
artefakti-ja välimuistiasetukset säätelevät artefaktien ja kätköjen puristussuhdetta.Näiden asetusten avulla voit määrittää työn tuottaman arkiston koon.
- hitaassa verkossa lataus saattaa olla nopeampaa pienemmille arkistoille.
- nopeassa verkossa, jossa kaistanleveys ja tallennustila eivät ole ongelma, lähetykset saattavat olla nopeinta puristussuhdetta käyttäen nopeampia, vaikka tuotettu arkisto on suurempi.
Gitlab Pages to serveHTTP Range requests, artifactshould use the ARTIFACT_COMPRESSION_LEVEL: fastest
setting, as only uncompressed zip archives support this feature.
mittari voidaan ottaa käyttöön myös latausten ja latausten siirtonopeuden ilmoittamiseksi.
variables: # output upload and download progress every 2 seconds TRANSFER_METER_FREQUENCY: "2s" # Use fast compression for artifacts, resulting in larger archives ARTIFACT_COMPRESSION_LEVEL: "fast" # Use no compression for caches CACHE_COMPRESSION_LEVEL: "fastest"
muuttuja | kuvaus |
---|---|
TRANSFER_METER_FREQUENCY
|
määritä, kuinka usein mittarin siirtonopeus tulostetaan. Se voidaan asettaa kestoksi (esimerkiksi 1s tai 1m30s ). Kesto 0 poistaa mittarin käytöstä (oletusarvo). Kun arvo on asetettu, putki näyttää edistymismittarin artefakti-ja välimuistilähetyksille ja latauksille. |
säätää puristussuhdetta, asetettu fastest fast default default slow , taislowest . Tämä asetus toimii vain fastzip-arkistolaitteella, joten myös GitLab Runner-ominaisuuslipun FF_USE_FASTZIP on oltava käytössä. |
|
CACHE_COMPRESSION_LEVEL |
To adjust compression ratio, set to fastest fast default slow , or slowest . This setting works with the Fastzip archiver only, so the GitLab Runner feature flag FF_USE_FASTZIP must also be enabled. |