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:
- Etapas preliminares: Obter o código fonte (pull do repositório), instalar dependências.
- Etapas principais de construção: Compilação, ligação, execução de testes.
- Empacotamento: Criação de arquivos, imagens de contêiner, instaladores.
- 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.