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:
- Eelnevad sammud: Koodi hankimine (repositooriumist), sõltuvuste installimine.
- Peamised koostamisetapid: Kompileerimine, linkimine, testide läbiviimine.
- Pakkimine: Arhivide, konteinerpiltide, installatsioonifailide loomine.
- 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.