Sobes.tech
Junior

De unde obține runner-ul codul pentru a fi executat?

sobes.tech AI

Răspuns de la AI

Runner obține codul pentru executare din depozitul sistemului de control al versiunilor, de obicei printr-un protocol precum Git. URL-ul specific al depozitului și ramura (sau eticheta, commit) sunt indicate în configurația pipeline-ului care pornește acest runner.

Procesul de obținere poate arăta astfel:

  1. Runner primește comanda de a executa o sarcină de la orchestratorul CI/CD (de exemplu, GitLab CI/CD, GitHub Actions, Jenkins).
  2. Împreună cu comanda, sunt transmise informații despre sarcină, inclusiv link-ul către depozit, ramura/commit-ul și contextul de execuție.
  3. Runner efectuează o operațiune de clonare a depozitului (sau a unei părți din acesta) în spațiul său de lucru temporar local.
  4. După o clonare reușită, runner-ul se schimbă pe commit-ul, ramura sau eticheta specificată, asigurând lucrul cu versiunea corectă a codului.

Exemplu de comandă de clonare în GitLab CI:

# Clonarea depozitului indicat în variabila CI_REPOSITORY_URL
git clone "$CI_REPOSITORY_URL" "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Accesarea directorului proiectului
cd "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Verificarea commit-ului necesar
git checkout "$CI_COMMIT_SHA"

În unele cazuri, dacă există cache, runner-ul poate verifica mai întâi dacă există o copie locală a depozitului și poate executa doar git fetch și git checkout pentru a actualiza la starea necesară, în loc de clonare completă.

Configurarea care definește sursa de cod este de obicei specificată într-un fișier YAML care descrie pipeline-ul (de exemplu, .gitlab-ci.yml, .github/workflows/*.yml).