Sobes.tech
Middle

Kā izveidot atkārtotas uzdevumus GitLab CI?

sobes.tech AI

Atbilde no AI

Ir vairākas pieejas atkārtojo uzdevumu izveidei GitLab CI:

  1. Pipeline grafiki (Pipeline Schedules): Tas ir visbiežāk izmantotais un tam paredzētais veids. Jūs konfigurējat grafiku GitLab interfeisā, norādot zaru/tagu, mainīgos (ja nepieciešams) un izpildes biežumu (cron sintakse).
  2. API trigeri: Jūs varat izmantot GitLab API, lai palaistu konveijerus no ārējās sistēmas vai skripta. Tas ir noderīgi, ja grafiks ir sarežģītāks vai ir atkarīgs no ārējiem notikumiem.
  3. CI/CD mainīgie nosacītai izpildei: .gitlab-ci.yml failā jūs varat izmantot iepriekš definētus vai lietotāja mainīgos, lai noteiktu uzdevuma izpildes nosacījumus. Lai gan tas neveido grafiku kā tādu, jūs varat palaist konveijeru pēc grafika (caur Pipeline Schedules) un iekšā izlemt, kurus uzdevumus izpildīt, balstoties uz mainīgajiem.

Piemērs, izmantojot Pipeline Schedules:

GitLab interfeisā dodieties uz repozitoriju -> Build -> Pipeline schedules. Izveidojiet jaunu grafiku, norādot:

  • Apraksts
  • Zars/tags
  • Intervāls (cron sintakse, piemēram, 0 0 * * * ikdienas palaišanai pusnaktī)
  • Mainīgie (neobligāti)

API trigeres piemērs (curl izmantošana):

# Aizvietojiet Private-Token ar savu personīgo API piekļuves žetonu
# Aizvietojiet <your_project_id> ar sava projekta ID
# Aizvietojiet <your_ref_name> ar zara vai taga nosaukumu

curl --request POST \
     --header 'Content-Type: application/json' \
     --header 'Private-Token: <your_private_token>' \
     --data '{
       "ref": "<your_ref_name>",
       "variables": {
         "MY_VARIABLE": "some_value"
       }
     }' \
     'https://gitlab.com/api/v4/projects/<your_project_id>/trigger/pipeline'

Mainīgo izmantošanas piemērs .gitlab-ci.yml failā nosacītai izpildei:

stages:
  - build
  - deploy

scheduled_job:
  stage: build
  script:
    - echo "Šis darbs tiek izpildīts tikai, ja tas ir uzsākts pēc grafika"
  only:
    variables:
      - $CI_PIPELINE_SOURCE == "schedule"

other_job:
  stage: deploy
  script:
    - echo "Šis darbs tiek izpildīts no visiem pipeline avotiem"
  # Nav `only: variables:` nosacījuma

Izvēle ir atkarīga no konkrētajām prasībām. Vienkāršiem atkārtojošiem uzdevumiem Pipeline Schedules ir optimāla izvēle. Sarežģītākiem scenārijiem vai integrācijai ar ārējām sistēmām piemēro API trigerus. Nosacīta izpilde ar mainīgajiem ir noderīga, lai kontrolētu plūsmu jau uzsāktā konveijerī.