Sobes.tech
Middle

Como funcionam as instruções para criar artefatos, o que representam e onde são armazenados os resultados obtidos?

sobes.tech IA

Resposta da IA

As instruções para criar artefactos (builds) geralmente são scripts ou ficheiros de configuração que descrevem a sequência de passos necessários para construir, compilar, empacotar e preparar um produto de software ou os seus componentes.

Podem ser implementadas de várias formas:

  • Makefile: Ferramenta tradicional para automatizar a construção de projetos baseada em dependências.
  • Scripts em várias linguagens: Bash, Python, Groovy (para Jenkins), PowerShell e outras linguagens de scripting.
  • Formatos de configuração: YAML (para GitLab CI, GitHub Actions, Azure DevOps Pipelines), JSON (raramente para construção, mais para metadados), XML (para Maven).

Exemplos de formatos:

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

As instruções definem:

  1. Etapas preliminares: Obter o código fonte (pull do repositório), instalar dependências.
  2. Etapas principais de construção: Compilação, ligação, execução de testes.
  3. Empacotamento: Criação de arquivos, imagens de contêiner, instaladores.
  4. Etapas pós-construção: Assinatura de artefactos, publicação.

Os artefactos obtidos são armazenados em repositórios especializados de artefactos. Estes são armazéns centralizados concebidos para armazenar e gerir ficheiros binários e outros resultados de construção. Exemplos:

  • Nexus Repository Manager: Suporta vários tipos de artefactos (Maven, npm, Docker, NuGet, etc.).
  • JFrog Artifactory: Repositório multi-formato semelhante ao Nexus.
  • Docker Registry: Especializado no armazenamento de imagens Docker (Docker Hub, GitLab Container Registry, Azure Container Registry).
  • Armazenamentos compatíveis com S3: Amazon S3, MinIO, utilizados para armazenamento geral de ficheiros, incluindo artefactos, às vezes com ferramentas adicionais para indexação.

O armazenamento em repositórios de artefactos garante o controlo de versões, controlo de acesso, facilidade de implantação e integração com outras ferramentas CI/CD. Isto assegura que, durante a implantação, são utilizados exatamente os artefactos que foram construídos e testados com sucesso.