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:
- Runner primește comanda de a executa o sarcină de la orchestratorul CI/CD (de exemplu, GitLab CI/CD, GitHub Actions, Jenkins).
- Împreună cu comanda, sunt transmise informații despre sarcină, inclusiv link-ul către depozit, ramura/commit-ul și contextul de execuție.
- 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.
- 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).