Sobes.tech
Junior

Waar haalt de runner de code vandaan die uitgevoerd moet worden?

sobes.tech AI

Antwoord van AI

De Runner haalt de code om uit te voeren uit de versiebeheersysteemrepository, meestal via een protocol zoals Git. De specifieke URL van de repository en de tak (of tag, commit) worden aangegeven in de pipelineconfiguratie die deze runner start.

Het proces van verkrijgen kan er als volgt uitzien:

  1. De Runner ontvangt de opdracht om een taak uit te voeren van de CI/CD-orchestrator (bijvoorbeeld GitLab CI/CD, GitHub Actions, Jenkins).
  2. Samen met de opdracht worden informatie over de taak, inclusief de link naar de repository, de tak/commit en de uitvoeringscontext, overgedragen.
  3. De Runner voert een kloonoperatie uit van de repository (of een deel ervan) in zijn tijdelijke lokale werkruimte.
  4. Na een succesvolle kloon schakelt de runner over naar de opgegeven commit, tak of tag, zodat gewerkt wordt met de juiste versie van de code.

Voorbeeld van een klooncommando in GitLab CI:

# Kloon de repository aangegeven in de variabele CI_REPOSITORY_URL
git clone "$CI_REPOSITORY_URL" "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Ga naar de projectdirectory
cd "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Controleer de benodigde commit
git checkout "$CI_COMMIT_SHA"

In sommige gevallen, bij caching, kan de runner eerst controleren of er een lokale kopie van de repository bestaat en alleen git fetch en git checkout uitvoeren om de status bij te werken, in plaats van volledig te klonen.

De configuratie die de bron van de code bepaalt, wordt meestal gespecificeerd in een YAML-bestand dat de pipeline beschrijft (bijvoorbeeld .gitlab-ci.yml, .github/workflows/*.yml).