14. Repositorio de Artefactos
El repositorio de artefactos permite almacenar y versionar recursos reutilizables como librerías internas, SDKs compartidos, componentes de UI, configuraciones estándar, y builds firmadas. Esta estrategia garantiza reutilización, trazabilidad y control de versiones.
14.1 Objetivos
- Centralizar artefactos compartidos por diferentes apps o módulos
- Reducir duplicación de código y errores
- Facilitar el mantenimiento de SDKs internos
- Permitir builds firmadas y verificadas para despliegue o distribución
14.2 Tipos de artefactos almacenados
| Tipo de Artefacto | Ejemplos |
|---|---|
| Librerías internas | sdk-identidad, core-utils, network-interceptors |
| Componentes UI | alpura-ui-buttons, alpura-theme-compose |
| Builds firmadas | .aab, .apk para QA, Producción |
| Configuración compartida | .jar con lógica común (Ej: validaciones, seguridad) |
| Documentación generada | Dokka HTML, JSON Specs, Changelogs |
14.3 Herramientas recomendadas
| Herramienta | Propósito |
|---|---|
| GitHub Packages | Repositorio Maven para dependencias internas |
| JFrog Artifactory | Almacenamiento seguro y enterprise |
| Maven Central | Para compartir librerías públicas |
| Google Drive (solo builds) | Backups puntuales QA / Producción |
14.4 Publicación de librerías internas
En build.gradle.kts
publishing {
publications {
create<MavenPublication>("release") {
groupId = "com.alpura.libs"
artifactId = "core-utils"
version = "1.0.3"
afterEvaluate {
from(components["release"])
}
}
}
repositories {
maven {
url = uri("https://maven.pkg.github.com/alpura/mobile-libs")
credentials {
username = project.findProperty("gpr.user") as String? ?: System.getenv("USERNAME")
password = project.findProperty("gpr.key") as String? ?: System.getenv("TOKEN")
}
}
}
}
14.5 Buenas prácticas
✅ Versionar cada cambio en el artefacto (vX.Y.Z)
✅ Documentar cada release (README, changelog)
✅ Proteger el repositorio con autenticación
✅ Revisar dependencias transitivas antes de publicar
✅ Evitar hardcode de claves en build.gradle.kts
14.6 Seguridad
- Usar tokens personales (PAT) para acceso a repositorio
- No subir artefactos sin revisión o test previo
- Validar que las librerías no expongan llaves o APIs sensibles
14.7 Integración con CI/CD
- Publicar automáticamente tras merge a rama
release - Validar build antes de subir (
./gradlew build publish) - Notificar en Slack o correo al equipo tras publicación exitosa
El uso de repositorios de artefactos fomenta la reutilización de software, la calidad controlada y la trazabilidad de librerías internas dentro del ecosistema de desarrollo Android.