Sobes.tech
Junior

Kas notiek pēc tam, kad GitLab lejupielādē kodu?

sobes.tech AI

Atbilde no AI

Pēc koda lejupielādes (klonējot repozitoriju), GitLab CI/CD izpilda pipeline — uzdevumu (jobs) un posmu (stages) kopumu, kas definēts .gitlab-ci.yml failā repozitorija saknes direktorijā.

Tipiska pipeline galvenie posmi pēc koda lejupielādes:

  1. Stages: Pipeline tiek sadalīts posmos, kas tiek izpildīti secīgi. Uzdevumi vienā posmā var tikt izpildīti paralēli.
  2. Jobs: Katrs uzdevums tiek izpildīts atsevišķā Runnerī. Runneris ir aģents, kas ņem darbu no GitLab CI/CD un to izpilda.
  3. Commands: Katra uzdevuma iekšienē tiek izpildītas komandas, kas norādītas sadaļā script .gitlab-ci.yml failā. Šīs komandas var ietvert:
    • Projekta būvēšanu (piemēram, koda kompilēšanu, artefaktu iepakošanu).
    • Testu palaišanu (vienību testus, integrācijas testus utt.).
    • Koda kvalitātes pārbaudi (linting, statisko analīzi).
    • Docker attēlu izveidi.
    • Izvietošanu (deployment) testēšanas, staging vai ražošanas vidē.
    • Citas nepieciešamās darbības.
  4. Dependencies (Atkarības): Uzdevumi var būt atkarīgi no iepriekšējo uzdevumu rezultātiem, izmantojot vārdu needs.
  5. Artifacts (Artefakti): Uzdevumu rezultāti (piemēram, kompilēts kods, testu pārskati, Docker attēli) var tikt saglabāti kā artefakti, kas ir pieejami lejupielādei vai izmantošanai turpmākajos uzdevumos.
  6. Caching (Kešošana): Atkarības vai pagaidu faili var tikt kešoti starp uzdevumu izpildes reizēm, lai paātrinātu izpildi.
  7. Reporting (Ziņošana): Izpildes rezultāti (panākumi/nepanākumi), žurnāli un artefakti ir pieejami GitLab interfeisā.

Aptuvena .gitlab-ci.yml struktūra:

stages: # Posmu definīcija
  - build
  - test
  - deploy

build_job: # Uzdevuma definīcija
  stage: build # Pieder posmam
  script: # Komandas izpildei
    - echo "Building the project..."
    - mvn package # Maven būves piemērs
  artifacts: # Artefaktu saglabāšana
    paths:
      - target/*.jar

test_job:
  stage: test
  script:
    - echo "Running tests..."
    - mvn test # Testu palaišanas piemērs
  needs: # Atkarība no iepriekšējās uzdevuma
    - build_job

deploy_job:
  stage: deploy
  script:
    - echo "Deploying the application..."
    - docker build -t my-app . # Docker attēla izveides piemērs
    - docker push my-app # Attēla augšupielādes piemērs
  only: # Nosacījums uzdevuma izpildei
    - main # Tikai galvenajā zarā

Tādējādi, pēc koda lejupielādes, GitLab CI/CD organizē noteiktā darba procesu, kas ir vērsts uz lietojumprogrammas būvi, testēšanu un izvietošanu.