Sobes.tech
Middle

Kā darbojas artefaktu izstrādes instrukcijas, ko tās pārstāv un kur tiek glabāti iegūtie rezultāti?

sobes.tech AI

Atbilde no AI

Instrukcijas artefaktu (būvju) izveidei parasti irast skriftus vai konfigurācijas failus, kas apraksta secību soļiem, kas nepieciešami programmatūras produkta vai tā komponentu būvēšanai, kompilēšanai, iepakošanai un sagatavošanai.

Tie var tikt īstenoti dažādos veidos:

  • Makefile: Tradicionāls rīks projektu būvēšanas automatizācijai, balstoties uz atkarībām.
  • Skripti dažādās valodās: Bash, Python, Groovy (Jenkins), PowerShell un citas skriptu valodas.
  • Konfigurācijas formāti: YAML (GitLab CI, GitHub Actions, Azure DevOps Pipelines), JSON (retāk būvēšanai, vairāk metadatiem), XML (Maven).

Formatēšanas piemēri:

# Makefile piemērs
build:
	gcc main.c -o myapp
	zip myapp.zip myapp
# .gitlab-ci.yml piemērs
build_job:
  stage: build
  script:
    - gcc main.c -o myapp
    - zip myapp.zip myapp
  artifacts:
    paths:
      - myapp.zip
# Bash skripta piemērs
#!/bin/bash
gcc main.c -o myapp
zip myapp.zip myapp

Instrukcijas definē:

  1. Iepriekšējie soļi: Koda iegūšana (no repozitorija), atkarību uzstādīšana.
  2. Galvenie būvēšanas soļi: Kompilācija, saistīšana, testu veikšana.
  3. Iepakošana: Arhīvu, konteineru attēlu, instalētāju izveide.
  4. Vēlākie būvēšanas soļi: Artefaktu parakstīšana, publicēšana.

Saņemtie artefakti tiek glabāti specializētos artefaktu glabātuvēs. Tie ir centrāli glabātāji, paredzēti bināro failu un citu būvēšanas rezultātu glabāšanai un pārvaldībai. Piemēri:

  • Nexus Repository Manager: Atbalsta dažādus artefaktu tipus (Maven, npm, Docker, NuGet un citus).
  • JFrog Artifactory: Līdzīgs Nexus, daudzveidīgs glabātājs.
  • Docker Registry: Specializēts Docker attēlu glabātājs (Docker Hub, GitLab Container Registry, Azure Container Registry).
  • S3 saderīgi glabātāji: Amazon S3, MinIO, kas tiek izmantoti kopīgai failu glabāšanai, tostarp artefaktiem, dažreiz ar papildu rīkiem indeksēšanai.

Artefaktu glabāšana glabātuvē nodrošina versiju kontroli, piekļuves kontroli, ērtu izvietošanu un integrāciju ar citiem CI/CD rīkiem. Tas garantē, ka izvietošanas laikā tiek izmantotas tieši tās artefaktu versijas, kas veiksmīgi ir būvētas un pārbaudītas.