Sobes.tech
Middle

Kas notiek pēc tam, kad GitLab saņem kodu?

sobes.tech AI

Atbilde no AI

GitLab, saņemot kodu (parasti caur git push), uzsāk procesu, kas ir atkarīgs no projekta iestatījumiem:

  1. Webhook-iem: Kad saņemts jauns kods, GitLab var informēt ārējos sistēmas (piemēram, CI/CD serveri, projekta pārvaldības sistēmu), nosūtot HTTP pieprasījumus. Šis ir triggers turpmākajām darbībām.

  2. CI/CD pipeline: Ja projektā ir konfigurēts fails .gitlab-ci.yml, GitLab Runner sāk CI/CD pipeline. Šis process ietver:

    • .gitlab-ci.yml sintakses pārbaudi.
    • Darbu (jobs) izveidi pēc YAML definīcijām.
    • Darbu piešķiršanu pieejamajiem runneriem.
    • Runner saņem darbus, lejupielādē avota kodu.
    • Izpilda norādītās komandas (būvēšana, testēšana, izvietošana utt.).
    • Saglabā artefaktus (uzbūvētas lietojumprogrammas, testu pārskatus) un žurnālfailus.
    • Nosūta darba izpildes statusu atpakaļ uz GitLab.

    Piemērs .gitlab-ci.yml struktūrai:

    stages:
      - build
      - test
      - deploy
    
    build_job:
      stage: build
      script:
        - echo "Lietojumprogrammas būvēšana..."
        - make build
    
    test_job:
      stage: test
      script:
        - echo "Testu izpilde..."
        - make test
    
    deploy_job:
      stage: deploy
      script:
        - echo "Lietojumprogrammas izvietošana..."
        - make deploy
      only:
        - main  # tikai pie push uz galveno zaru
    
  3. Automātiskas darbības: GitLab var veikt citas automātiskas darbības:

    • Merge Request izveide (pie push uz citu zaru nekā mērķa zars).
    • Merge Request statusa atjaunināšana.
    • Drošības skenēšanas uzsākšana (ja iestatījumi ir aktivizēti).
    • Darbu automātiska slēgšana vai sasaistīšana (izmantojot atslēgvārdus kommitos vai aprakstos).
  4. Paziņojumu sistēma: GitLab nosūta paziņojumus lietotājiem pa e-pastu vai caur citiem kanāliem (Slack, Mattermost), ja viņi ir abonējuši notikumus repozitorijā (jauni kommiti, pipeline statusi, komentāri).

  5. Datu atjaunināšana par repozitoriju: GitLab iekšēji atjaunina datus par repozitoriju, zaru, zīmju un kommitu vēsturi.

Kopumā šis process ir vērsts uz jauna koda integrāciju kopējā darba plūsmā, automatizētu būvniecību, testēšanu un iespējams izvietošanu, kā arī ieinteresēto pušu informēšanu.