Sobes.tech
Middle

Ako fungujú pokyny na vytváranie artefaktov, čo predstavujú a kde sa ukladajú získané výsledky?

sobes.tech AI

Odpoveď od AI

Uputstva za kreiranje artefakata (buildova) obično су скрипте или конфигурациони фајлови који описују секвенцу корака потребних за састављање, компилацију, паковање и припрему софтверског производа или његових компоненти.

Они могу бити реализовани различитим начинима:

  • Makefile: Традиционални алат за аутоматизацију састављања пројеката на основу зависности.
  • Скрипте на различитим језицима: Bash, Python, Groovy (за Jenkins), PowerShell и друге скриптне језике.
  • Конфигурациони формати: YAML (за GitLab CI, GitHub Actions, Azure DevOps Pipelines), JSON (ретко за састављање, више за метаподатке), XML (за Maven).

Примери формата:

# Пример Makefile
build:
	gcc main.c -o myapp
	zip myapp.zip myapp
# Пример .gitlab-ci.yml
build_job:
  stage: build
  script:
    - gcc main.c -o myapp
    - zip myapp.zip myapp
  artifacts:
    paths:
      - myapp.zip
# Пример Bash скрипте
#!/bin/bash
gcc main.c -o myapp
zip myapp.zip myapp

Упутства дефинишу:

  1. Претходни кораци: Добијање изворног кода (pull из репозиторијума), инсталација зависности.
  2. Главни кораци састављања: Компилација, линковање, извршавање тестова.
  3. Паковање: Креирање архива, контејнерских слика, инсталатера.
  4. Пост-саставни кораци: Потписивање артефаката, објављивање.

Добијени артефакти се чувају у специјализованим репозиторијумима артефаката (Artifact Repositories). То су централна складишта намењена за чување и управљање бинарним фајловима и другим резултатима састављања. Примери таквих репозиторијума:

  • Nexus Repository Manager: Подржава различите типове артефаката (Maven, npm, Docker, NuGet и др.).
  • JFrog Artifactory: Слично Nexus-у, мултитип репозиторијума.
  • Docker Registry: Специјализован за чување Docker слика (Docker Hub, GitLab Container Registry, Azure Container Registry).
  • S3-компатибилна складишта: Amazon S3, MinIO, користе се за опште чување фајлова, укључујући артефакте, понекад са додатним алатима за индексовање.

Чување у репозиторијуму артефаката обезбеђује верзионисање, контролу приступа, погодност распоређивања и интеграцију са другим CI/CD алатима. То омогућава да се приликом распоређивања користе управо оне верзије артефаката које су успешно састављене и тестиране.