Sobes.tech
Middle

Kuidas töötavad artefaktide loomise juhised, mida need esindavad ja kus salvestatakse saadud tulemused?

sobes.tech AI

Vastus AI-lt

Juhised artefaktide (ehitiste) loomise kohta on tavaliselt skriptid või konfiguratsioonifailid, mis kirjeldavad sammude järjestust, mis on vajalikud tarkvaratootega või selle komponentidega töötamiseks: koostamine, kompileerimine, pakkimine ja ettevalmistamine.

Need võivad olla realiseeritud erinevatel viisidel:

  • Makefile: Traditsiooniline tööriist projektide koostamise automatiseerimiseks sõltuvuste alusel.
  • Skriptid erinevates keeltes: Bash, Python, Groovy (Jenkins), PowerShell ja teised skriptikeeled.
  • Konfiguratsiooniformaadid: YAML (GitLab CI, GitHub Actions, Azure DevOps Pipelines), JSON (harva koostamiseks, pigem metaandmete jaoks), XML (Maven).

Näidiformaadid:

# Makefile näide
build:
	gcc main.c -o myapp
	zip myapp.zip myapp
# .gitlab-ci.yml näide
build_job:
  stage: build
  script:
    - gcc main.c -o myapp
    - zip myapp.zip myapp
  artifacts:
    paths:
      - myapp.zip
# Bash skripti näide
#!/bin/bash
gcc main.c -o myapp
zip myapp.zip myapp

Juhised määratlevad:

  1. Eelnevad sammud: Koodi hankimine (repositooriumist), sõltuvuste installimine.
  2. Peamised koostamisetapid: Kompileerimine, linkimine, testide läbiviimine.
  3. Pakkimine: Arhivide, konteinerpiltide, installatsioonifailide loomine.
  4. Järgmised koostamisetapid: Artefaktide allkirjastamine, avaldamine.

Saadud artefaktid salvestatakse spetsialiseeritud artefaktide hoidlate (Artifact Repositories) hulka. Need on tsentraliseeritud hoidlad, mis on mõeldud binaarfailide ja teiste koostamise tulemite säilitamiseks ja haldamiseks. Näited sellistest hoidlatest:

  • Nexus Repository Manager: Toetab erinevat tüüpi artefakte (Maven, npm, Docker, NuGet ja teised).
  • JFrog Artifactory: Sarnaselt Nexusile, mitmetüübiline hoidla.
  • Docker Registry: Spetsialiseeritud Docker-piltide hoidla (Docker Hub, GitLab Container Registry, Azure Container Registry).
  • S3-sarnased hoidlad: Amazon S3, MinIO, mida kasutatakse üldiseks failide salvestamiseks, sealhulgas artefaktide jaoks, mõnikord täiendavate tööriistadega indekseerimiseks.

Artefaktide hoidmine hoidlas tagab versioonihalduse, juurdepääsukontrolli, mugava juurutamise ja integratsiooni teiste CI/CD tööriistadega. See võimaldab tagada, et juurutamisel kasutatakse just neid artefaktide versioone, mis on edukalt koostatud ja testitud.