konfiguration af løbere i GitLab
- typer af løbere
- delte løbere
- hvordan delte løbere vælger job
- aktiver delte løbere
- Deaktiver delte løbere
- Gruppeløbere
- Opret en gruppeløber
- se og administrer gruppeløbere
- sæt en Gruppeløber på pause eller Fjern
- specifikke løbere
- opret en bestemt løber
- aktiver en bestemt løber for et specifikt projekt
- undgå, at en bestemt løber aktiveres for andre projekter
- delte løbere
- Ryd løberens cache manuelt
- indstil maksimal timeout for en løber
- vær forsigtig med følsomme oplysninger
- undgå, at løbere afslører følsomme oplysninger
- gafler
- angrebsvektorer i løbere
- Nulstil løberregistreringstokenet for et projekt
- Bestem IP-adressen for en løber
- Bestem IP-adressen for en løber
- Bestem IP-adressen for en løber
- af en delt løber
- bestem IP-adressen for en bestemt løber
- Brug tags til at begrænse antallet af job ved hjælp af løberen
- runner kører kun taggede job
- runner er tilladt at køre untagged job
- Konfigurer runner adfærd med variabler
- Git strategi
- Git submodule strategi
- Git checkout
- Git clean flag
- Git hente ekstra flag
- lavvandet kloning
- brugerdefinerede build mapper
- håndtering samtidighed
- indlejrede stier
- jobstadieforsøg
- systemopkald er ikke tilgængelige på GitLab.com delte løbere
- Indstillinger for artefakt og cache
i GitLab CI/CD kører løbere koden defineret i
.gitlab-ci.yml
.En løber er en let, meget skalerbar agent, der henter et CI-job gennem koordinator API for GitLab CI/CD, kører jobbet og sender resultatet tilbage til GitLab-forekomsten.løbere oprettes af en administrator og er synlige i GitLab UI.Løbere kan være specifikke for bestemte projekter eller tilgængelige for alle projekter.
denne dokumentation er fokuseret på at bruge løbere i GitLab.Hvis du har brug for at installere og konfigurere GitLab Runner, skal du sy GitLab Runner-dokumentationen.
- typer af løbere
- delte løbere
- hvordan delte løbere vælger job
- aktiver delte løbere
- Deaktiver delte løbere
- Gruppeløbere
- Opret en gruppeløber
- se og administrer gruppeløbere
- sæt en gruppeløber på Pause eller fjern
- specifikke løbere
- Opret en bestemt løber
- aktiver en bestemt løber til et specifikt projekt
- undgå, at en bestemt løber aktiveres for andre projekter
- Ryd manuelt løbercachen
- indstil maksimal jobtimeout for en løber
- vær forsigtig med følsomme oplysninger
- forhindre løbere i at afsløre følsomme oplysninger
- Forks
- angrebsvektorer i løbere
- Nulstil runner-registreringstokenet for et projekt
- Bestem IP-adressen på en løber
- Bestem IP-adressen på en delt løber
- Bestem IP-adressen for en bestemt løber
- Brug tags til at begrænse antallet af job ved hjælp af runner
- runner kører kun taggede job
- runner har lov til at køre ikke-taggede job
- Konfigurer runneradfærd med variabler
- Git-strategi
- Git submodule strategi
- Git checkout
- Git clean flag
- Git Hent ekstra flag
- lav kloning
- brugerdefinerede build mapper
- håndtering af samtidighed
- indlejrede stier
- Job stages forsøg
- systemopkald er ikke tilgængelige på GitLab.com delte løbere
- Indstillinger for artefakt og cache
typer af løbere
I GitLab UI er der tre typer løbere, baseret på hvem du vil have adgang:
- delte løbere er tilgængelige for alle grupper og projekter i en GitLab-forekomst.
- Gruppeløbere er tilgængelige for alle projekter og undergrupper i en gruppe.
- specifikke løbere er forbundet med specifikke projekter.Typisk bruges specifikke løbere til et projekt ad gangen.
delte løbere
delte løbere er tilgængelige for hvert projekt i en GitLab-forekomst.
brug delte løbere, når du har flere job med lignende krav. I stedet for at have flere løbere på tomgang til mange projekter, kan du have et par løbere, der håndterer flere projekter.
Hvis du bruger en selvstyret forekomst af GitLab:
- din administrator kan installere og registrere delte løbere ved at gå til dit projekts indstillinger> CI / CD, udvide afsnittet løbere og klikke på Vis installationsvejledning til runner.Disse instruktioner er også tilgængelige i dokumentationen.
- administratoren kan også konfigurere et maksimalt antal delte runner pipeline minutter forehver gruppe.
Hvis du bruger GitLab.com:
- du kan vælge fra en liste over delte løbere, som GitLab vedligeholder.
- de delte løbere forbruger rørledningerne minutterinkluderet med din konto.
hvordan delte løbere vælger job
delte løbere behandler job ved hjælp af en fair brugskø. Denne kø forhindrer projekter i at skabe hundreder af job og bruge alle tilgængelige delte runner-ressourcer.
fair usage-køalgoritmen tildeler job baseret på de projekter, der har det seneste antal job, der allerede kører på delte løbere.
eksempel 1
hvis disse job er i køen:
- Job 1 For projekt 1
- Job 2 For projekt 1
- Job 3 For projekt 1
- Job 4 for Projekt 2
- Job 5 for Projekt 2
- Job 6 For projekt 3
fair usage-algoritmen tildeler job i denne rækkefølge:
- Job 1 vælges først, fordi det har det laveste jobnummer fra projekter uden løbende job (det vil sige alle projekter).
- Job 4 er næste, fordi 4 Nu er det laveste jobnummer fra projekter uden løbende job (projekt 1 har et job, der kører).
- Job 6 er næste, fordi 6 nu er det laveste jobnummer fra projekter uden løbende job (projekter 1 og 2 har job, der kører).
- Job 2 er næste, fordi af projekter med det laveste antal job, der kører (hver har 1), er det det laveste jobnummer.
- Job 5 er næste, fordi projekt 1 Nu har 2 job i gang, og Job 5 er det laveste resterende jobnummer mellem Projekt 2 og 3.
- endelig er Job 3 … fordi det er det eneste job tilbage.
eksempel 2
hvis disse job er i køen:
- Job 1 For projekt 1
- Job 2 For projekt 1
- Job 3 For projekt 1
- Job 4 for Projekt 2
- Job 5 for Projekt 2
- Job 6 For projekt 3
fair usage-algoritmen tildeler job i denne rækkefølge:
- Job 1 vælges først, fordi det har det laveste jobnummer fra projekter uden løbende job (det vil sige alle projekter).
- Vi afslutter Job 1.
- Job 2 er næste, fordi alle projekter, når de er færdige med Job 1, har 0 job, der kører igen, og 2 er det laveste tilgængelige jobnummer.
- Job 4 er det næste, fordi når projekt 1 kører et Job, er 4 det laveste antal fra projekter, der kører ingen job (projekt 2 og 3).
- Vi afslutter Job 4.
- Job 5 er næste, fordi Projekt 2 ikke har nogen job, der kører igen.
- Job 6 er næste, fordi projekt 3 er det eneste projekt, der er tilbage uden løbende job.
- endelig vælger vi Job 3 … fordi det igen er det eneste job, der er tilbage.
aktiver delte løbere
On GitLab.com, delte løbere er aktiveret i alle projekter bydefault.
på selvstyrede forekomster af GitLab skal en administrator installereog registrere dem.
Du kan også aktivere delte løbere til individuelle projekter.
Sådan aktiveres delte løbere:
- gå til projektets indstillinger> CI / CD og udvid afsnittet løbere.
- vælg Aktiver delte løbere for dette projekt.
Deaktiver delte løbere
Du kan deaktivere delte løbere for individuelle projekter eller for grupper.Du skal have Ejertilladelser til projektet eller gruppen.
Sådan deaktiveres delte løbere til et projekt:
- gå til projektets indstillinger> CI / CD og udvid afsnittet løbere.
- i området delte løbere skal du vælge Aktiver delte løbere for dette projekt, så skiftet er nedtonet.
delte løbere deaktiveres automatisk for et projekt:
- hvis indstillingen delte løbere for den overordnede gruppe er deaktiveret, og
- hvis tilsidesættelse af denne indstilling ikke er tilladt på projektniveau.
Sådan deaktiveres delte løbere for en gruppe:
- gå til gruppens indstillinger> CI / CD og udvid afsnittet løbere.
- i området delte løbere skal du slå aktiver delte løbere til denne gruppe fra.
- hvis du vil tillade, at delte løbere aktiveres for individuelle projekter eller undergrupper,skal du klikke på Tillad projekter og undergrupper for at tilsidesætte gruppeindstillingen.
notatfor at genaktivere de delte løbere for en gruppe skal du aktivere de delte løbere for denne gruppe.Derefter skal en ejer eller vedligeholder eksplicit ændre denne indstilling for hver projektundergruppe eller projekt.Gruppeløbere
brug Gruppeløbere, når du vil have alle projekter i en gruppefor at få adgang til et sæt løbere.
Gruppeløbere behandler job ved hjælp af en FIFO-kø (first in, first out).
Opret en gruppeløber
Du kan oprette en gruppeløber til din selvstyrede GitLab-forekomst eller til GitLab.com.du skal have Ejertilladelser til gruppen.
for at oprette en gruppeløber:
- installer GitLab Runner.
- gå til den gruppe, du vil få løberen til at arbejde for.
- gå til Indstillinger > CI/CD og udvid sektionen løbere.
- Bemærk URL og token.
- registrer løberen.
se og administrer gruppeløbere
introduceret i GitLab 13.2.
Du kan få vist og administrere alle løbere for en gruppe, dens undergrupper og projekter.Du kan gøre dette for din selvstyrede GitLab-forekomst eller for GitLab.com.du skal have Ejertilladelser til gruppen.
- gå til gruppen, hvor du vil se løberne.
- gå til Indstillinger > CI/CD og udvid sektionen løbere.
-
følgende felter vises.
attribut Description Type en eller flere af følgende tilstande: delt, gruppe, specifik, låst eller sat på pause Runner token Token bruges til at identificere løberen, og som løberen bruger til at kommunikere med GitLab-forekomsten beskrivelse beskrivelse givet til løberen, da den blev oprettet Version GitLab Runner Version IP-adresse IP-adresse på værten, som løberen er registreret projekter antallet af projekter, som løberen er tildelt job i alt job, der køres af løberen Tags Tags tilknyttet løberen sidste kontakt tidsstempel, der angiver, hvornår GitLab-forekomsten sidst kontaktede løberen
fra denne side kan du redigere, pause og fjerne løbere fra gruppen, dens undergrupper og projekter.
sæt en gruppeløber på Pause eller fjern
Du kan sætte en gruppeløber på pause eller fjerne en gruppeløber for din selvstyrede GitLab-forekomst eller for GitLab.com.du skal have ejertilladelser til gruppen.
- gå til den gruppe, du vil fjerne, eller sæt løberen på pause for.
- gå til Indstillinger > CI/CD og udvid sektionen løbere.
- Klik på Pause eller Fjern runner.
- hvis du sætter en gruppeløber på pause, der bruges af flere projekter, holder løberen pause for alle projekter.
- fra gruppevisningen kan du ikke fjerne en løber, der er tildelt mere end et projekt.Du skal først fjerne det fra hvert projekt.
- klik på OK i bekræftelsesdialogen.
specifikke løbere
brug specifikke løbere, når du vil bruge løbere til specifikke projekter. For eksempel, når du har:
- job med specifikke krav, som et implementeringsjob, der kræver legitimationsoplysninger.
- projekter med en masse CI-aktivitet, der kan drage fordel af at være adskilt fra andre løbere.
Du kan oprette en bestemt løber, der skal bruges af flere projekter. Specifikke løbereskal være aktiveret for hvert projekt eksplicit.
specifikke løbere behandler job ved hjælp af en FIFO-kø (first in, first out).
notespecifikke løbere deles ikke automatisk med forked-projekter.En gaffel kopierer CI / CD-indstillingerne for det klonede lager.Opret en bestemt løber
Du kan oprette en bestemt løber til din selvstyrede GitLab-forekomst eller til GitLab.com.du skal have Ejertilladelser til projektet.
for at oprette en bestemt runner:
- installer runner.
- gå til projektets indstillinger > CI/CD og udvid sektionen løbere.
- Bemærk URL og token.
- registrer løberen.
aktiver en bestemt løber til et specifikt projekt
en bestemt løber er tilgængelig i det projekt, den blev oprettet til. En administrator kan gøre det muligt for en bestemt løber at ansøge om yderligere projekter.
- du skal have Ejertilladelser til projektet.
- den specifikke løber må ikke låses.
Sådan aktiveres eller deaktiveres en bestemt løber for et projekt:
- gå til projektets indstillinger > CI/CD og udvid afsnittet løbere.
- Klik på Aktiver for dette projekt eller deaktiver for dette projekt.
undgå, at en bestemt løber aktiveres for andre projekter
Du kan konfigurere en bestemt løber, så den er “låst” og ikke kan aktiveres for andre projekter.Denne indstilling kan aktiveres, når du først registrerer en løber, men kan også ændres senere.
Sådan låses eller låses en løber op:
- gå til projektets indstillinger> CI / CD og udvid afsnittet løbere.
- Find den løber, du vil låse eller låse op. Sørg for, at den er aktiveret.
- Klik på blyantknappen.
- kontroller indstillingen Lås til aktuelle projekter.
- Klik på Gem ændringer.
Ryd manuelt løbercachen
Læs rydning af cachen.
indstil maksimal jobtimeout for en løber
for hver løber kan du angive en maksimal jobtimeout. Denne timeout, hvis den er mindre end den projektdefinerede timeout, har forrang.
denne funktion kan bruges til at forhindre, at din delte løber overvældes af et projekt, der har job med lang timeout (for eksempel en uge).
når de ikke er konfigureret, tilsidesætter løbere ikke projektets timeout.
på GitLab.med, du kan ikke tilsidesætte jobtimeout for delte løbere og skal bruge den projektdefinerede timeout.
for at indstille den maksimale timeout for job:
- i et projekt skal du gå til Indstillinger>CI/CD> løbere.
- vælg din specifikke løber for at redigere indstillingerne.
- Indtast en værdi under maksimal timeout for job.
- vælg Gem ændringer.
Sådan fungerer denne funktion:
eksempel 1 – Runner timeout større end project timeout
- du indstiller den maksimale timeout for en runner til 24 timer
- du indstiller CI/CD Timeout for et projekt til 2 timer
- du starter et job
- jobbet, hvis det kører længere, timeout efter 2 timer
eksempel 2 – Runner timeout ikke konfigureret
- du fjerner den maksimale timeout – indstilling fra en runner
- du indstiller CI/CD-timeout for et projekt til 2 timer
- du starter et job
- jobbet, hvis det kører længere, Timeout efter 2 timer
eksempel 3-runner timeout mindre end projekttimeout
- du indstiller den maksimale jobtimeout for en løber til 30 minutter
- du indstiller CI/CD-Timeout for et projekt til 2 timer
- du starter et job
- jobbet, hvis det kører længere, timeout efter 30 minutter
vær forsigtig med følsomme oplysninger
med nogle runner-eksekutorer,hvis du kan køre et job på den anden side af Runner, kan du få fuld adgang til filsystemet,og dermed enhver kode det kører samt token af løberen. Med delte løbere betyder det, at enhverder kører job på løberen, kan få adgang til andres kode, der kører påløberen.
desuden, fordi du kan få adgang til runner token, er det muligtat oprette en klon af en løber og indsende falske job, for eksempel.
ovenstående undgås let ved at begrænse brugen af delte runners på store offentlige GitLab-forekomster, kontrollere adgangen til din GitLab-forekomst og bruge mere sikre runner-eksekutorer.
forhindre løbere i at afsløre følsomme oplysninger
introduceret i GitLab 10.0.
Du kan beskytte løbere, så de ikke afslører følsomme oplysninger.Når en løber er beskyttet, vælger løberen job,der kun er oprettet på beskyttede grene eller beskyttede tags, og ignorerer andre job.
for at beskytte eller fjerne beskyttelsen af en løber:
- gå til projektets indstillinger> CI / CD og udvid afsnittet løbere.
- Find den løber, du vil beskytte eller beskytte. Sørg for, at den er aktiveret.
- Klik på blyantknappen.
- Kontroller den beskyttede indstilling.
- Klik på Gem ændringer.
Forks
når et projekt er forked, kopierer det indstillingerne for de job, der relateretil det. Dette betyder, at hvis du har delt løbere oprettet til et projekt, og nogen gafler det projekt, de delte løbere Tjener Job i dette projekt.
angrebsvektorer i løbere
nævnt kort tidligere, men følgende ting af løbere kan udnyttes.Vi er altid på udkig efter bidrag, der kan afbøde dissesikkerhedshensyn.
Nulstil runner-registreringstokenet for et projekt
Hvis du mener, at et registreringstoken for et projekt blev afsløret, skal duIndstil det igen. Et token kan bruges til at registrere en anden løber til projektet. Den nye runnerkan derefter bruges til at opnå værdierne for hemmelige variabler eller til at klone projektkode.
for at nulstille token:
- gå til projektets indstillinger> CI / CD.
- Udvid afsnittet Generelle indstillinger for rørledninger.
- Find feltet Runner token-formular, og klik på knappen Vis værdi.
- Slet værdien og gem formularen.
- når siden er opdateret, skal du udvide sektionen Runners settingsog kontroller registreringstokenet-det skal ændres.
fra nu af er det gamle token ikke længere gyldigt og registrerer ikkeeventuelle nye løbere til projektet. Hvis du bruger værktøjer til at levere og registrere nye løbere, skal de tokens, der bruges i disse værktøjer, opdateres for at afspejle værdien af det nye token.
Bestem IP-adressen på en løber
introduceret i GitLab 10.6.
det kan være nyttigt at kende IP-adressen på en løber, så du kan fejlfindeproblemer med den løber. GitLab gemmer og viser IP-adressen ved at visekilden til de HTTP-anmodninger, den fremsætter til GitLab, når man vælger job. TheIP-adressen holdes altid opdateret, så hvis runner IP ændrer detautomatisk opdateringer i GitLab.
IP-adressen for delte løbere og specifikke løbere kan findes iforskellige steder.
Bestem IP-adressen på en delt løber
for at se IP-adressen på en delt løber skal du have administratoradgang til GitLab-forekomsten. For at bestemme dette:
- besøg Admin område> oversigt> løbere.
- Kig efter løberen i tabellen, og du skal se en kolonne til IP-adresse.
Bestem IP-adressen for en bestemt løber
for at finde IP-adressen til en løber til et specifikt projekt skal du have Ejertilladelser til projektet.
- gå til projektets indstillinger> CI / CD og udvid sektionen løbere.
- på siden Detaljer skal du se en række for IP-adresse.
du skal oprette en runner for at kunne køre alle de forskellige typer job, som den kan støde på på de projekter, den deles over. Dette ville være problematisk for store mængder projekter, hvis det ikke var for tags.GitLab ci-tags er ikke det samme som Git-tags. GitLab ci-tags er forbundet med løbere.Git-tags er forbundet med forpligtelser.
Ved at tagge en løber for de typer job, den kan håndtere, kan du sørge for, at delte løbere kun kører de job, de er udstyret til at køre.
for eksempel har vi på GitLab løbere mærket med
rails
hvis de indeholderde relevante afhængigheder til at køre Rails test suiter.når du registrerer en løber, er dens standardadfærd kun at vælge tagget jobs.To ændre dette, du skal have Ejertilladelser til projektet.
for at få en løber til at vælge ikke-taggede job:
- gå til projektets indstillinger> CI / CD og udvid sektionen løbere.
- Find den løber, du vil vælge ikke-taggede job, og sørg for, at den er aktiveret.
- Klik på blyantknappen.
- kontroller indstillingen Kør ikke-taggede job.
- Klik på knappen Gem ændringer for at ændringerne kan træde i kraft.
noteløberen tags listen kan ikke være tom, når det ikke er tilladt at vælge untagged job.nedenfor er nogle eksempler scenarier af forskellige variationer.
runner kører kun taggede job
følgende eksempler illustrerer den potentielle virkning af, at løberen er setto run only tagged jobs.
eksempel 1:
- løberen er konfigureret til kun at køre taggede job og har
docker
tagget. - et job, der har et
hello
tag udføres og sidder fast.
eksempel 2:
- løberen er konfigureret til kun at køre taggede job og har
docker
tagget. - et job, der har et
docker
tag udføres og køres.
eksempel 3:
- løberen er konfigureret til kun at køre taggede job og har
docker
tagget. - et job, der ikke har definerede tags, udføres og sidder fast.
runner har lov til at køre ikke-taggede job
de følgende eksempler illustrerer den potentielle virkning af, at løberen er setto run tagged og untagged job.
eksempel 1:
- løberen er konfigureret til at køre ikke-taggede job og har
docker
tagget. - et job, der ikke har definerede tags, udføres og køres.
- et andet job, der har et
docker
tag defineret udføres og køres.
eksempel 2:
- løberen er konfigureret til at køre ikke-taggede job og har ingen tags defineret.
- et job, der ikke har definerede tags, udføres og køres.
- et andet job, der har en
docker
tag defineret sidder fast.
Konfigurer runneradfærd med variabler
Du kan bruge CI / CD-variabler til at konfigurere runner Git behaviorglobalt eller til individuelle job:
GIT_STRATEGY
GIT_SUBMODULE_STRATEGY
GIT_CHECKOUT
GIT_CLEAN_FLAGS
GIT_FETCH_EXTRA_FLAGS
-
GIT_DEPTH
(lav kloning) -
GIT_CLONE_PATH
(brugerdefinerede build-mapper)
Du kan også bruge variabler til at konfigurere, hvor mange gange en løberforsøg på bestemte faser af jobbet henrettelse.
Git-strategi
Versionshistorik- introduceret i GitLab 8.9 som en eksperimentel funktion.
-
GIT_STRATEGY=none
kræver GitLab Runner v1.7+.
Du kan indstille
GIT_STRATEGY
bruges til at hente repository indhold, entherglobally eller per-job ivariables
sektion:variables: GIT_STRATEGY: clone
der er tre mulige værdier:
clone
fetch
ognone
. Hvis de ikke er specificeret,bruger job projektets pipeline-indstilling.clone
er den langsomste mulighed. Det kloner depotet fra bunden for everyjob, hvilket sikrer, at den lokale arbejdskopi altid er uberørt.Hvis der findes et eksisterende arbejdstræ, fjernes det inden kloning.fetch
er hurtigere, da den genbruger den lokale arbejdskopi (falder tilbage tilclone
hvis den ikke findes).git clean
bruges til at fortryde eventuelle ændringer foretaget af lastjob, oggit fetch
bruges til at hente forpligtelser foretaget efter det sidste job løb.fetch
kræver dog adgang til det forrige arbejdstræ. Dette fungerer godt, når du brugershell
ellerdocker
eksekutor, fordi disseprøv at bevare arbejdstræer og prøv at genbruge dem som standard.dette har begrænsninger, når du bruger Docker-maskinens eksekutor.
det virker ikke for
kubernetes
eksekutor,men der findes et funktionsforslag.kubernetes
eksekutor kloner altid i en midlertidig mappe.en Git-strategi for
none
genbruger også den lokale arbejdskopi, men springer over alle Gitoperationer, der normalt udføres af GitLab. GitLab Runner pre-clone scripts springes også over, hvis de er til stede. Denne strategi kan betyde, at du skal tilføjefetch
ogcheckout
kommandoertil din.gitlab-ci.yml
script.det kan bruges til job, der udelukkende opererer på artefakter, som et implementeringsjob.Git repository data kan være til stede, men det er sandsynligvis forældet. Du bør kunstole på filer bragt ind i den lokale arbejdskopi fra cache eller artefakter.
Git submodule strategi
kræver GitLab Runner v1.10+.
GIT_SUBMODULE_STRATEGY
variablen bruges til at kontrollere, om / hvordan Gitsubmodules er inkluderet, når du henter koden før en build. Du kan indstille themglobally eller per-job ivariables
sektionen.Der er tre mulige værdier:
none
normal
ogrecursive
:-
none
betyder, at undermoduler er ikke inkluderet, når du henter projektkoden. Dette er standard, som matcher præ-v1.10 adfærd. -
normal
betyder, at kun de øverste niveau undermoduler er inkluderet. Det svarer til:git submodule syncgit submodule update --init
recursive
betyder, at alle undermoduler (inklusive undermoduler af undermoduler)er inkluderet. Denne funktion har brug for Git v1.8. 1 og senere. Når du bruger aGitLab Runner med en eksekutor, der ikke er baseret på Docker, skal du sørge for, at Git-versionenopfylder dette krav. Det svarer til:git submodule sync --recursivegit submodule update --init --recursive
for at denne funktion skal fungere korrekt, skal undermodulerne konfigureres(i
.gitmodules
) med enten:- HTTP-URL ‘ en til et offentligt tilgængeligt arkiv, eller
- en relativ sti til et andet lager på den samme GitLab-server. Se dokumentation for undermoduler i git.
Git checkout
introduceret i GitLab Runner 9.3.
GIT_CHECKOUT
variablen kan bruges, nårGIT_STRATEGY
er indstillet til entenclone
ellerfetch
for at angive, om engit checkout
skal køres. Hvis det ikke er angivet, er det som standard sandt. Du kan indstille dem globalt eller PR.job ivariables
sektionen.Hvis indstillet til
false
, løberen:- når du laver
fetch
– opdaterer lageret og efterlader arbejdskopien påden aktuelle revision, - når du laver
clone
– kloner lageret og efterlader arbejdskopien på default-grenen.
Hvis
GIT_CHECKOUT
er indstillet tiltrue
, arbejder beggeclone
ogfetch
på samme måde.Løberen tjekker arbejdskopien af en revision relateret til CI-rørledningen:variables: GIT_STRATEGY: clone GIT_CHECKOUT: "false"script: - git checkout -B master origin/master - git merge $CI_COMMIT_SHA
Git clean flag
introduceret i GitLab Runner 11.10
GIT_CLEAN_FLAGS
variabel bruges til at kontrollere standardopførslen afgit clean
efter at have tjekket kilderne. Du kan indstille det globalt eller PR.job ivariables
sektionen.GIT_CLEAN_FLAGS
accepterer alle mulige muligheder forgit clean
kommando.git clean
er deaktiveret, hvisGIT_CHECKOUT: "false"
er angivet.Hvis
GIT_CLEAN_FLAGS
er:- ikke specificeret,
git clean
flag standard til-ffdx
. - givet værdien
none
git clean
udføres ikke.
for eksempel:
variables: GIT_CLEAN_FLAGS: -ffdx -e cache/script: - ls -al cache/
Git Hent ekstra flag
introduceret i GitLab Runner 13.1.
GIT_FETCH_EXTRA_FLAGS
variablen bruges til at styre opførelsen afgit fetch
. Du kan indstille det globalt eller PR.job ivariables
sektionen.GIT_FETCH_EXTRA_FLAGS
accepterer alle muligheder forgit fetch
kommando.GIT_FETCH_EXTRA_FLAGS
flag tilføjes efter standardflagene, der ikke kan ændres.standardflaggene er:
- GIT_DEPTH.
- listen over refspecs.
- en fjernbetjening kaldet
origin
.
Hvis
GIT_FETCH_EXTRA_FLAGS
er:- ikke specificeret,
git fetch
flag standard til--prune --quiet
sammen med standardflagene. - i betragtning af værdien
none
git fetch
udføres kun med standardflagene.
for eksempel er standardflaggene
--prune --quiet
, så du kan gøregit fetch
mere verbose ved at tilsidesætte dette med bare--prune
:variables: GIT_FETCH_EXTRA_FLAGS: --prunescript: - ls -al cache/
konfigurationen ovenfor resulterer i
git fetch
bliver kaldt på denne måde:git fetch origin $REFSPECS --depth 50 --prune
hvor
$REFSPECS
er en værdi, der leveres til løberen internt af GitLab.lav kloning
introduceret i GitLab 8.9 som en eksperimentel funktion.
Du kan angive dybden af hentning og kloning ved hjælp af
GIT_DEPTH
GIT_DEPTH
gør en lav klon af depotet og kan betydeligt fremskynde cloning.It kan være nyttigt for repositories med et stort antal begår eller gamle, store binære filer. Værdien er gået tilgit fetch
oggit clone
.i GitLab 12.0 og nyere har nyoprettede projekter automatisk adefault
git depth
værdi af50
.Hvis du bruger en dybde på
1
og har en kø af job eller retryjobs, kan Job mislykkes.Git hentning og kloning er baseret på en ref, såsom en gren navn, så runnerscan ‘ t klone en bestemt begå SHA. Hvis flere job er i køen, ellerdu prøver igen et gammelt job, forpligtelsen til at blive testet skal være inden for dengit-historie, der er klonet. Indstilling for lille en værdi for
GIT_DEPTH
kan gøre det umuligt at køre disse gamle forpligtelser ogunresolved reference
vises injob logs. Du skal derefter genoverveje at ændreGIT_DEPTH
til en højere værdi.job, der er afhængige af
git describe
fungerer muligvis ikke korrekt, nårGIT_DEPTH
isset, da kun en del af Git-historien er til stede.for at hente eller klone kun de sidste 3 forpligter:
variables: GIT_DEPTH: "3"
Du kan indstille det globalt eller per-job i
variables
sektionen.brugerdefinerede build mapper
introduceret i GitLab Runner 11.10.
Som standard kloner GitLab Runner depotet i en unik undervej i
$CI_BUILDS_DIR
– mappen. Dit projekt kan dog kræve koden i en bestemt mappe (f.eks. I så fald kan du angiveenGIT_CLONE_PATH
variabel for at fortælle løberen, at mappen skal klone denpository i:variables: GIT_CLONE_PATH: $CI_BUILDS_DIR/project-nametest: script: - pwd
GIT_CLONE_PATH
skal altid være inden for$CI_BUILDS_DIR
. Mappen i$CI_BUILDS_DIR
er afhængig af eksekutor og konfiguration af løbere.builds_dirsetting.dette kan kun bruges, når
custom_build_dir
er aktiveret i therunner ‘ s konfiguration.Dette er standardkonfigurationen fordocker
ogkubernetes
eksekutorer.håndtering af samtidighed
en eksekutor, der bruger en samtidighed større end
1
kan føre til fejl. Flere job fungerer muligvis på den samme mappe, hvisbuilds_dir
deles mellem job.løberen forsøger ikke at forhindre denne situation. Det er op til administratorenog udviklere at overholde kravene i runner konfiguration.
for at undgå dette scenario kan du bruge en unik sti inden for
$CI_BUILDS_DIR
, fordi runnereksponerer to yderligere variabler, der giver en unikID
af samtidighed:-
$CI_CONCURRENT_ID
: unikt ID for alle job, der kører inden for den givne eksekutor. $CI_CONCURRENT_PROJECT_ID
: unikt ID for alle job, der kører inden for den givne eksekutor og projekt.
den mest stabile konfiguration, der skal fungere godt i ethvert scenario og på enhver eksekutoris at bruge
$CI_CONCURRENT_ID
iGIT_CLONE_PATH
. For eksempel:variables: GIT_CLONE_PATH: $CI_BUILDS_DIR/$CI_CONCURRENT_ID/project-nametest: script: - pwd
$CI_CONCURRENT_PROJECT_ID
skal bruges sammen med$CI_PROJECT_PATH
som$CI_PROJECT_PATH
div > giver en sti til et lager. Det vil sigegroup/subgroup/project
. For eksempel:variables: GIT_CLONE_PATH: $CI_BUILDS_DIR/$CI_CONCURRENT_ID/$CI_PROJECT_PATHtest: script: - pwd
indlejrede stier
værdien af
GIT_CLONE_PATH
udvides en gang, og indlejringsvariablerinden understøttes ikke.for eksempel definerer du begge variablerne nedenfor i din
.gitlab-ci.yml
fil:variables: GOPATH: $CI_BUILDS_DIR/go GIT_CLONE_PATH: $GOPATH/src/namespace/project
værdien af
GIT_CLONE_PATH
udvides en gang til$CI_BUILDS_DIR/go/src/namespace/project
og resulterer i fejlfordi$CI_BUILDS_DIR
er ikke udvidet.Job stages forsøg
introduceret i GitLab, det kræver GitLab Runner v1.9+.
Du kan indstille antallet af forsøg, som det løbende job forsøger at udførefølgende trin:
variabel Description ARTIFACT_DOWNLOAD_ATTEMPTS
antal forsøg på at hente artefakter, der kører et job EXECUTOR_JOB_SECTION_ATTEMPTS
i GitLab 12.10 og senere er antallet af forsøg på at køre en sektion i et job efter en No Such Container
fejl (kun Docker-eksekutor).GET_SOURCES_ATTEMPTS
antal forsøg på at hente kilder, der kører et job RESTORE_CACHE_ATTEMPTS
antal forsøg på at gendanne cachen, der kører et job standard er et enkelt forsøg.
eksempel:
variables: GET_SOURCES_ATTEMPTS: 3
Du kan indstille dem globalt eller per-job i
variables
sektionen.systemopkald er ikke tilgængelige på GitLab.com delte løbere
GitLab.com delte løbere kører på CoreOS. Dette betyder, at du ikke kan bruge nogle systemopkald, som
getlogin
, fra C-standardbiblioteket.Indstillinger for artefakt og cache
introduceret i GitLab Runner 13.9.
Indstillinger for artefakt og cache styrer komprimeringsforholdet mellem artefakter og cacher.Brug disse indstillinger til at angive størrelsen på det arkiv, der er produceret af et job.
- på et langsomt netværk kan uploads være hurtigere for mindre arkiver.
- på et hurtigt netværk, hvor båndbredde og opbevaring ikke er et problem, kan uploads være hurtigere ved hjælp af det hurtigste komprimeringsforhold, på trods af at det producerede arkiv er større.
for GitLab sider til at serverehttp Range anmodninger, artifactsskal bruge
ARTIFACT_COMPRESSION_LEVEL: fastest
indstilling, som kun ukomprimeret lynlås arkivstøtte denne funktion.en måler kan også aktiveres for at give overførselshastigheden for uploads og overførsler.
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"
variabel Description TRANSFER_METER_FREQUENCY
angiv, hvor ofte målerens overførselshastighed skal udskrives. Det kan indstilles til en varighed (for eksempel 1s
eller1m30s
). En varighed på0
deaktiverer måleren (standard). Når en værdi er indstillet, viser pipeline en statusmåler for artefakt-og cache-uploads og-overførsler.ARTIFACT_COMPRESSION_LEVEL
for at justere kompressionsforholdet skal du indstille til fastest
fast
default
slow
, ellerslowest
. Denne indstilling fungerer kun med fastcip-arkiveren, så GitLab Runner-funktionsflagFF_USE_FASTZIP
skal også være aktiveret.CACHE_COMPRESSION_LEVEL
To adjust compression ratio, set to fastest
fast
default
slow
, orslowest
. This setting works with the Fastzip archiver only, so the GitLab Runner feature flagFF_USE_FASTZIP
must also be enabled.
- Bestem IP-adressen for en løber
- Bestem IP-adressen for en løber