Sobes.tech
Middle

Kaip nustatyti darbo paleidimą GitLab'e paspaudus mygtuką?

sobes.tech AI

Atsakymas iš AI

Norint sukonfigūruoti rankinį darbo paleidimą GitLab CI/CD, darbo aprašyme .gitlab-ci.yml naudojama raktinė žodis when: manual.

Pavyzdys:

stages:
  - build
  - deploy

build_job:
  stage: build
  script:
    - echo "Building the project..."
    # Statybos komandos

deploy_staging:
  stage: deploy
  script:
    - echo "Deploying to staging..."
  when: manual # Šį darbą reikia paleisti rankiniu būdu
  allow_failure: false # Pagal numatytuosius nustatymus false, bet aiškiai nurodysime

Paaiškinimas:

  • when: manual: Nurodo GitLab, kad šis darbas automatiškai nebus pradėtas keičiant kodą (commit) ar pagal grafiką. Jis lauks, kol naudotojas jį paleis rankiniu būdu per GitLab sąsają.
  • allow_failure: false: Nustato, ar tolesni darbai (jei yra) bus vykdomi, jei šis rankinis darbas baigsis nesėkmingai. Jei nustatyta false, pipeline sustos nesėkmės atveju. Jei true, pipeline tęsiasi ir nesėkmės atveju.

Po tokio .gitlab-ci.yml failo pridėjimo ir įkėlimo į GitLab, pipeline sąsajoje (CI/CD -> Pipelines) šalia darbo deploy_staging atsiras mygtukas „Run“ arba jo būsena bus rodoma kaip „Manual“. Paspaudus šį mygtuką, darbas bus paleistas.

Taip pat galima įtraukti rankinius darbus į etapus, kurie automatiškai paleidžia kitus darbus. Pavyzdžiui:

stages:
  - build
  - test
  - deploy

build_job:
  stage: build
  script:
    - echo "Building..."

test_job:
  stage: test
  needs: [build_job]
  script:
    - echo "Testing..."

deploy_production:
  stage: deploy
  needs: [test_job]
  script:
    - echo "Deploying to production..."
  when: manual # Tik po sėkmingo testo, ir tada rankiniu būdu
  variables:
    TARGET_ENVIRONMENT: "production" # Pavyzdys: perduoti kintamuosius rankiniam darbui

Čia darbas deploy_production taps prieinamas rankiniam paleidimui tik po sėkmingo test_job darbo pabaigos.

Papildomai:

  • variables: Rankiniai darbai gali naudoti kintamuosius, kurie yra apibrėžti tiek .gitlab-ci.yml faile, tiek projekto/grupės nustatymuose.
  • rules: Sudėtingesni paleidimo scenarijai gali naudoti raktinę žodį rules kartu su when: manual, kad nustatytų sąlygas, kada rankinis darbas tampa prieinamas arba privalomas.
  • API: Rankiniai darbai taip pat gali būti paleisti per GitLab CI/CD API.

Taigi, when: manual yra pagrindinis mechanizmas rankiniam darbo paleidimui GitLab.