Sobes.tech
Junior

Mis juhtub pärast GitLab koodi alla laadimist?

sobes.tech AI

Vastus AI-lt

Pärast koodi allalaadimist (repositoriumi kloonimist), GitLab CI/CD täidab pipeline — tööde (jobs) ja etappide (stages) kogumi, mis on määratletud .gitlab-ci.yml failis repositoriini juurkataloogis.

Tüüpilise pipeline põhietapid pärast koodi allalaadimist:

  1. Stages: Pipeline jaguneb etappideks, mis täidetakse järjest. Ühes etapis olevad tööd võivad toimuda paralleelselt.
  2. Jobs: Iga töö täidetakse eraldi Runneris. Runner on agent, mis võtab GitLab CI/CD-st töö ja täidab selle.
  3. Commands: Iga töö sees täidetakse käske, mis on märgitud sektsioonis script .gitlab-ci.yml failis. Need käsud võivad hõlmata:
    • Projekti ehitamist (nt koodi kompileerimine, artefaktide pakkimine).
    • Testide käivitamist (üksustestid, integratsioonitestid jms.).
    • Koodi kvaliteedi kontrolli (linting, statiline analüüs).
    • Docker piltide loomist.
    • Juhtimist (deployment) test- või tootmiskeskkonda.
    • Muud vajalikud toimingud.
  4. Dependencies (Sõltuvused): Tööde sõltuvused võivad olla eelnevate tööde tulemustest, kasutades sõna needs.
  5. Artifacts (Artefaktid): Tööde tulemused (nt kompileeritud kood, testiaruanded, Docker pildid) võivad olla salvestatud artefaktidena, mis on saadaval allalaadimiseks või kasutamiseks järgnevates töödes.
  6. Caching (Kuhjamine): Sõltuvused või ajutised failid võivad olla vahemällu salvestatud tööde vahel, et kiirendada täitmist.
  7. Reporting (Aruandlus): Täitmise tulemused (edu/ebaõnnestumine), logid ja artefaktid on saadaval GitLab kasutajaliideses.

Näidistruktuur .gitlab-ci.yml:

stages: # Etappide määratlus
  - build
  - test
  - deploy

build_job: # Töö määratlus
  stage: build # Osalemine etapil
  script: # Täidetavad käsud
    - echo "Building the project..."
    - mvn package # Maven-i näide ehitamisest
  artifacts: # Artefaktide salvestamine
    paths:
      - target/*.jar

test_job:
  stage: test
  script:
    - echo "Running tests..."
    - mvn test # Testide käivitamise näide
  needs: # Sõltuvus eelmisest tööst
    - build_job

deploy_job:
  stage: deploy
  script:
    - echo "Deploying the application..."
    - docker build -t my-app . # Docker pildi loomise näide
    - docker push my-app # Pildi üleslaadimise näide
  only: # Tingimus töö täitmiseks
    - main # Ainult main haru

Seega, pärast koodi allalaadimist, korraldab GitLab CI/CD määratud tööprotsessi, mis on suunatud rakenduse ehitamisele, testimisele ja juurutamisele.