Sobes.tech
Junior

Որտե՞ղից է runner-ը ստանում գործարկման համար կոդը։

sobes.tech AI

Պատասխան AI-ից

Runner-ը ստանում է կատարելու համար կոդը տարբերակային կառավարման համակարգի պահոցից, սովորաբար՝ Git-ի նման պրոտոկոլով։ Կայքէջի կոնկրետ URL-ը և ճյուղը (կամ տեգը, commit-ը) նշված են պայպլայնի կոնֆիգուրացիայում, որը գործարկում է այս runner-ը:

Գործընթացը կարող է wygląda այնպես՝

  1. Runner-ը ստանում է հրամանը կատարել առաջադրանք CI/CD օրգանիզատորից (օրինակ՝ GitLab CI/CD, GitHub Actions, Jenkins):
  2. Հետո հրամանի հետ փոխանցվում են առաջադրանքի մասին տեղեկություններ՝ ներառյալ պահոցին հղումը, ճյուղը/commit-ը և կատարման կոնտեքստը:
  3. Runner-ը կատարում է պահոցը (կամ նրա մի մասը) կլոնավորելու գործողություն՝ իր ժամանակավոր տեղական աշխատանքային տարածքում:
  4. Հաջողակ կլոնավորումից հետո runner-ը անցնում է նշված commit, ճյուղ կամ տեգ, ապահովելով, որ աշխատում է ճիշտ կոդի տարբերակի հետ:

Օրինակ՝ GitLab CI-ում կլոնավորման հրամանը՝

# Կլոնավորում է պահոցը, նշված փոփոխականով CI_REPOSITORY_URL
git clone "$CI_REPOSITORY_URL" "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Փոխում է նախագծի թղթապանակ
cd "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Ստուգում է անհրաժեշտ commit-ը
git checkout "$CI_COMMIT_SHA"

Կան դեպքեր, երբ cache-ով, runner-ը կարող է նախ ստուգել, արդյոք տեղական պատճենը գոյություն ունի, և միայն git fetch և git checkout կատարել՝ անհրաժեշտ վիճակին հասնելու համար, ամբողջական կլոնավորումը փոխարեն:

Կոնֆիգուրացիան, որը սահմանում է կոդի աղբյուրը, սովորաբար նշվում է YAML ֆայլում, որը նկարագրում է պայպլայնը (օրինակ՝ .gitlab-ci.yml, .github/workflows/*.yml