Articles

juoksijoiden määrittäminen gitlabissa

  • Juoksutyypit
    • jaetut juoksijat
      • miten jaetut juoksijat valitsevat työpaikat
      • mahdollistavat jaetut juoksijat
    • Poista jaetut juoksijat

  • luo ryhmäjuoksija
  • Katso ja hallitse ryhmäjuoksijoita

  • Keskeytä tai Poista ryhmä juoksija
  • määrätyt juoksijat
    • luo tietty juoksija
    • ota tietty juoksija käyttöön tiettyyn projektiin
    • Estä tietyn juoksijan ottaminen käyttöön muissa projekteissa
  • aseta Juoksijavälimuisti manuaalisesti
  • Aseta juoksijalle maksimaalinen työaika
  • ole varovainen arkaluonteisten tietojen kanssa
    • Estä juoksijoita paljastamasta arkaluontoisia tietoja
    • haarukat
    • Hyökkäysvektorit juoksijoissa
    • Nollaa juoksijan rekisteröintitunnus projektille
  • Määritä juoksijan IP-osoite
    • Määritä jaetun juoksijan IP-osoite
    • määritä tietyn juoksijan IP-osoite
  • käytä tageja rajoittamaan työn määrää käyttämällä juoksijaa
    • juoksija juoksee vain merkittyjä töitä
    • runner saa suorittaa untagged-töitä
  • Määritä juoksijan käyttäytyminen muuttujilla
    • Git-strategia
    • git checkout
    • Git clean flags
    • Shallow cloning
    • Custom build directories
      • handling concurrency
      • polut
    • työvaiheyritykset
  • järjestelmäkutsuja ei saatavilla GitLab.com jaetut juoksijat
  • artefakti-ja välimuistiasetukset
  • 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

    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ä:

    1. Job 1 valitaan ensimmäisenä, koska sillä on pienin työnumero projekteista, joissa ei ole käynnissä olevia töitä (eli kaikki projektit).
    2. 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ä).
    3. 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ä).
    4. työ 2 on seuraava, koska hankkeista, joissa on vähiten töitä käynnissä (kussakin on 1), se on pienin työn määrä.
    5. 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ä.
    6. 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ä:

    1. työpaikka 1 valitaan ensimmäisenä, koska sillä on pienin työnumero projekteista, joissa ei ole käynnissä olevia töitä (eli kaikki projektit).
    2. lopetimme työn 1.
    3. 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.
    4. 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).
    5. lopetimme työn 4.
    6. työ 5 on seuraava, koska työn 4 päätyttyä projekti 2: lla ei ole enää töitä käynnissä.
    7. Job 6 on seuraava, koska projekti 3 on ainoa projekti, jossa ei ole käynnissä olevia töitä.
    8. 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:

    1. Siirry projektin asetuksiin > CI / CD ja laajenna juoksijat-osio.
    2. 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:

    1. Siirry projektin asetuksiin > CI / CD ja laajenna Runners-osio.
    2. 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ä:

    1. siirry ryhmän asetuksiin > CI / CD ja laajenna juoksijat-osio.
    2. ota jaetut juoksijat-alue pois päältä tässä Ryhmätapahtumassa.
    3. valinnaisesti, jotta jaetut suoritukset voidaan ottaa käyttöön yksittäisissä projekteissa tai alaryhmissä,valitse Salli projektit ja aliryhmät ohittaaksesi ryhmäasetuksen.
    note to re-enable the shared runners for a group, kytke jaetut juoksijat päälle tässä ryhmässä.Tämän jälkeen omistajan tai ylläpitäjän on nimenomaisesti muutettava tätä asetusta kunkin projektin aliryhmän tai projektin osalta.

    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:

    1. Asenna Gitlab-juoksija.
    2. mene ryhmään, jossa haluat juoksijan toimivan.
    3. Mene asetuksiin > CI / CD ja laajenna juoksijat-osio.
    4. huomaa URL ja token.
    5. 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.

    1. mene ryhmään, jossa haluat nähdä juoksijat.
    2. Mene asetuksiin > CI / CD ja laajenna juoksijat-osio.
    3. 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.

    1. mene ryhmään, jonka haluat poistaa tai keskeyttää juoksijan.
    2. Mene asetuksiin > CI / CD ja laajenna juoksijat-osio.
    3. 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.
    4. 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.

    noteSpecific runners ei jakaudu haaroitettuihin projekteihin automaattisesti.Haarukka kopioi kloonatun arkiston CI/CD-asetukset.

    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:

    1. Asenna juoksija.
    2. Siirry projektin asetuksiin > CI / CD ja laajenna Runners-osio.
    3. huomaa URL ja token.
    4. 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:

    1. Siirry projektin asetuksiin > CI / CD ja laajenna juoksulenkit-osio.
    2. 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:

    1. Siirry projektin asetuksiin > CI / CD ja laajenna juoksuosuus.
    2. Etsi juoksija, jonka haluat lukita tai avata. Varmista, että se on päällä.
    3. klikkaa kynänappia.
    4. Tarkista Lukko nykyisiin projekteihin-asetus.
    5. 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:

    1. projektissa, Mene asetuksiin > CI/CD > juoksijat.
    2. Valitse oma juoksijasi muokataksesi asetuksia.
    3. syötä arvo työajan enimmäiskeston alle.
    4. valitse Tallenna muutokset.

    miten tämä ominaisuus toimii:

    Esimerkki 1 – juoksijan aikalisä suurempi kuin projektin aikalisä

    1. asetat juoksijan työajan maksimimäärän 24 tuntiin
    2. asetat CI/CD – aikalisän projektille 2 tuntiin
    3. aloitat työn
    4. työ, jos juoksu kestää kauemmin, aikalisä 2 tunnin jälkeen

    Esimerkki 2 – juoksijan aikalisä ei ole määritetty

    1. poistat maksimimäärän työn aikalisäasetukset juoksijalta
    2. asetat CI/CD-aikalisän projektille 2 tunniksi
    3. aloitat työn
    4. työ, jos juoksu kestää kauemmin, aikalisä 2 tunnin jälkeen

    esimerkki 3-juoksija aikalisä pienempi kuin projektin aikalisä

    1. asetat juoksijan maksimityöajan 30 minuuttiin
    2. asetat CI/CD-aikalisän projektille 2 tuntiin
    3. aloitat työn
    4. 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:

    1. Siirry projektin asetuksiin > CI / CD ja laajenna juoksijat-osio.
    2. Etsi suojattava tai suojaamaton juoksija. Varmista, että se on päällä.
    3. klikkaa kynänappia.
    4. Tarkista suojattu vaihtoehto.
    5. napsauta Tallenna muutokset.

    specific runners edit icon

    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:

    1. Siirry projektin asetuksiin > CI / CD.
    2. Laajenna yleiset putkistojen asetukset-osiota.
    3. Etsi Runner token-lomakekenttä ja napsauta Reveal value-painiketta.
    4. Poista arvo ja tallenna lomake.
    5. 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:

    1. käy Admin Area > Overview > Runners.
    2. Etsi juoksijaa taulukosta ja sinun pitäisi nähdä IP-osoitteen sarake.

    jaettu juoksijan IP-osoite

    Määritä tietyn juoksijan IP-osoite

    , jotta voit löytää juoksijan IP-osoitteen tietylle projektille, sinulla on oltava projektin omistajan oikeudet.

    1. Siirry projektin asetuksiin > CI / CD ja laajenna Runners-osio.
    2. tietosivulla kannattaa nähdä IP-osoitteen rivi.

    erityinen juoksijan IP-osoite

    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ä:

    1. Siirry projektin asetuksiin > CI / CD ja laajenna Runners-osio.
    2. Etsi valitsemasi juoksija ja varmista, että se on käytössä.
    3. klikkaa kynänappia.
    4. Tarkista Run untagged jobs-vaihtoehto.
    5. napsauta Tallenna muutokset-painiketta, jotta muutokset tulevat voimaan.
    nottethe runner tagien lista ei voi olla tyhjä, kun ei saa valita sitomattomia töitä.

    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:

    1. juoksija on määritetty suorittamaan vain merkittyjä töitä ja sillä on docker tagi.
    2. työ, jossa on hello tagi suoritetaan ja jumissa.

    Esimerkki 2:

    1. juoksija on määritetty juoksemaan vain merkittyjä töitä ja sillä ondocker tagi.
    2. tehtävä, jossa on docker tagi suoritetaan ja ajetaan.

    esimerkki 3:

    1. juoksija on konfiguroitu suorittamaan vain merkittyjä töitä ja sillä on docker tagi.
    2. 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:

    1. juoksija on konfiguroitu suorittamaan viimeistelemättömiä töitä ja sillä ondocker tagi.
    2. työ, jossa ei ole määriteltyjä tageja, suoritetaan ja ajetaan.
    3. toinen työ, jossa on docker tag määritelty, suoritetaan ja ajetaan.

    Esimerkki 2:

    1. runner on määritetty suorittamaan viimeistelemättömiä töitä eikä sille ole määritelty tageja.
    2. työ, jossa ei ole määriteltyjä tageja, suoritetaan ja ajetaan.
    3. 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_STRATEGYGIT_SUBMODULE_STRATEGYGIT_CHECKOUT GIT_CLEAN_FLAGS li>GIT_FETCH_EXTRA_FLAGS

    • GIT_DEPTH(shallow cloning)
    • GIT_CLONE_PATH (custom build directories)

    voit myös määrittää muuttujien avulla, kuinka monta kertaa runnerattinen suorittaa tiettyjä työn suorittamisen vaiheita.

    Git-strategia

    versiohistoria

    • 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: clonefetchjanone. 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: nonenormal, ja recursive:

    • none tarkoittaa, että alimodules eivät sisälly noudettaessa Projektikoodia. Tämä on oletusarvo, joka vastaa ennen v1.10-käyttäytymistä.

    • normaltarkoittaa, 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_FLAGSmuuttujaa käytetäängit cleantarkistettuaan lähteet. Voit asettaa sen globaalisti tai tehtäväkohtaisestivariables – osiossa.

    GIT_CLEAN_FLAGS hyväksyy kaikki mahdolliset git cleankomennon 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 nonegit 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 nonegit 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ä $REFSPECSon 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_DEPTHGIT_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_PATHon aina oltava$CI_BUILDS_DIR. Hakemisto asetettu$CI_BUILDS_DIRriippuu 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_dirjaetaan 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_IDGIT_CLONE_PATH. Esimerkiksi:

    variables: GIT_CLONE_PATH: $CI_BUILDS_DIR/$CI_CONCURRENT_ID/project-nametest: script: - pwd

    $CI_CONCURRENT_PROJECT_IDtulisi käyttää yhdessä$CI_PROJECT_PATHkuten$CI_PROJECT_PATHantaa 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_PATHlaajennetaan kerran$CI_BUILDS_DIR/go/src/namespace/project, ja tuloksena vikaantuminen, koska$CI_BUILDS_DIRei 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:

    GET_SOURCES_ATTEMPTS

    RESTORE_CACHE_ATTEMPTS

    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"
    ARTIFACT_COMPRESSION_LEVEL

    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 fastestfastdefaultdefaultslow, 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 fastestfastdefaultslow, or slowest. This setting works with the Fastzip archiver only, so the GitLab Runner feature flag FF_USE_FASTZIP must also be enabled.