Junior
No kurienes runner saņem izpildāmo kodu?
sobes.tech AI
Atbilde no AI
Runner saņem kodu izpildei no versiju kontroles sistēmas depo, parasti izmantojot protokolu, piemēram, Git. Konkrētais depo URL un zars (vai tags, commits) ir norādīti pipeline konfigurācijā, kas aktivizē šo runner.
Iegūšanas process var izskatīties šādi:
- Runner saņem komandu veikt uzdevumu no CI/CD orkestratora (piemēram, GitLab CI/CD, GitHub Actions, Jenkins).
- Kopā ar komandu tiek nodotas informācija par uzdevumu, ieskaitot saiti uz depo, zaru/commit un izpildes kontekstu.
- Runner veic depo klonēšanu (vai tā daļas) uz savu pagaidu vietējo darba vidi.
- Pēc veiksmīgas klonēšanas runner pārslēdzas uz norādīto commit, zaru vai tagu, nodrošinot darbu ar pareizo koda versiju.
Piemērs, kā klonēt ar GitLab CI:
# Klonēt depo, norādītu mainīgajā CI_REPOSITORY_URL
git clone "$CI_REPOSITORY_URL" "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Pāriet uz projekta direktoriju
cd "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Pārbaudīt nepieciešamo commit
git checkout "$CI_COMMIT_SHA"
Dažos gadījumos, ja ir kešatmiņa, runneris var vispirms pārbaudīt, vai ir lokāla kopija, un veikt tikai git fetch un git checkout, lai atjauninātu stāvokli, nevis pilnībā klonētu.
Konfigurācija, kas nosaka koda avotu, parasti ir norādīta YAML failā, kas apraksta pipeline (piemēram, .gitlab-ci.yml, .github/workflows/*.yml).