Este documento describe cómo funciona el proceso de release de Shipwright y cómo los binarios se publican para que los servicios puedan consumirlos.
Cuando se hace un release, el pipeline:
- Compila binarios para múltiples plataformas (Linux, macOS, Windows) vía Dagger
- Empaqueta archivos comprimidos (tar.gz, zip) y genera
checksums.txt, también vía Dagger - Publica el set completo de artefactos (binarios directos + archivos comprimidos + checksums.txt) al GitHub Release vía GitHub CLI
Cada release incluye dos tipos de archivos:
shipwright_1.0.0_linux_amd64.tar.gzshipwright_1.0.0_linux_arm64.tar.gzshipwright_1.0.0_darwin_amd64.tar.gzshipwright_1.0.0_darwin_arm64.tar.gzshipwright_1.0.0_windows_amd64.zipshipwright_1.0.0_windows_arm64.zip
shipwright-linux-amd64shipwright-linux-arm64shipwright-darwin-amd64shipwright-darwin-arm64shipwright-windows-amd64.exeshipwright-windows-arm64.exe
- name: Download Shipwright
run: |
curl -L https://github.com/pablogore/shipwright/releases/download/v1.0.0/shipwright-linux-amd64 -o shipwright
chmod +x shipwright# Descargar binario
curl -L https://github.com/pablogore/shipwright/releases/download/v1.0.0/shipwright-$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m | sed 's/x86_64/amd64/') -o shipwright
chmod +x shipwright
sudo mv shipwright /usr/local/bin/# En Jenkins, GitLab CI, etc.
curl -L https://github.com/pablogore/shipwright/releases/download/v1.0.0/shipwright-linux-amd64 -o shipwright
chmod +x shipwrightPara obtener siempre la última versión:
curl -L https://github.com/pablogore/shipwright/releases/latest/download/shipwright-linux-amd64 -o shipwright
chmod +x shipwrightEl release se activa cuando:
- Push a main: Crea un release automático con versión patch incrementada
- Tag manual: Crea un release con la versión del tag (ej:
v1.0.0)
- Validación: Determina la versión y genera changelog
- Build y Test: Compila y ejecuta tests (workflow de CI, previo al release)
- Dagger: Compila la matriz de plataformas, empaqueta archivos comprimidos, genera
checksums.txty verifica el contrato de integridad antes de publicar nada - Publicación: Crea (o verifica, si ya existe) el GitHub Release y sube el set completo de artefactos vía GitHub CLI
- Verificación Post-Publicación: Descarga el set completo publicado y valida checksums + ejecución del binario
- Resumen: Muestra información del release
https://github.com/pablogore/shipwright/releases/download/v1.0.0/shipwright-linux-amd64
https://github.com/pablogore/shipwright/releases/latest/download/shipwright-linux-amd64
https://github.com/pablogore/shipwright/releases/download/{TAG}/shipwright-{OS}-{ARCH}
Donde:
{TAG}: Versión del release (ej:v1.0.0olatest){OS}: Sistema operativo (linux,darwin,windows){ARCH}: Arquitectura (amd64,arm64)
Para verificar que un binario se descargó correctamente:
# Verificar que es ejecutable
./shipwright --version
# Verificar checksum (si está disponible)
sha256sum shipwright-linux-amd64
# Comparar con checksums.txt en el release- Guía de Integración - Cómo integrar en servicios
- Guía de Entornos - Uso en diferentes entornos
- Ejemplos - Ejemplos de uso