feature/generador-instaladores-linux-windows
This commit is contained in:
41
build-all.sh
41
build-all.sh
@@ -4,7 +4,9 @@
|
||||
#
|
||||
# Linux : build en Docker (ubuntu:22.04) -> dist/CloudRestoreAS (autocontenido)
|
||||
# Windows: build vía powershell.exe -> build.ps1 -> dist/CloudRestoreAS.exe
|
||||
# Paquete: dist/release/CloudRestoreAS-linux.tar.gz y CloudRestoreAS-win.zip
|
||||
# Paquete: dist/release/CloudRestoreAS-<version>-{linux,win}-<arch>.{tar.gz,zip}
|
||||
# + SHA256SUMS + release.json
|
||||
# Publica: paquetes genéricos de Gitea (fuente de verdad que consume el PANEL)
|
||||
#
|
||||
# Uso:
|
||||
# ./build-all.sh # ambos + empaquetado
|
||||
@@ -12,6 +14,9 @@
|
||||
# ./build-all.sh --windows-only # solo Windows
|
||||
# ./build-all.sh --no-package # sin generar .tar.gz/.zip
|
||||
# ./build-all.sh --clean # rebuild desde cero (borra venvs/bundled/dist)
|
||||
# ./build-all.sh --publish # además publica en Gitea (requiere GITEA_TOKEN)
|
||||
# ./build-all.sh --publish --notify-panel # y avisa al PANEL para que sincronice
|
||||
# ./build-all.sh --publish --force-publish # reemplaza una versión ya publicada
|
||||
# =============================================================================
|
||||
set -uo pipefail
|
||||
|
||||
@@ -22,6 +27,8 @@ DO_LINUX=1
|
||||
DO_WINDOWS=1
|
||||
DO_PACKAGE=1
|
||||
DO_CLEAN=0
|
||||
DO_PUBLISH=0
|
||||
PUBLISH_ARGS=()
|
||||
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
@@ -29,6 +36,9 @@ for arg in "$@"; do
|
||||
--windows-only) DO_LINUX=0 ;;
|
||||
--no-package) DO_PACKAGE=0 ;;
|
||||
--clean) DO_CLEAN=1 ;;
|
||||
--publish) DO_PUBLISH=1 ;;
|
||||
--notify-panel) PUBLISH_ARGS+=(--notify-panel) ;;
|
||||
--force-publish) PUBLISH_ARGS+=(--force) ;;
|
||||
-h|--help)
|
||||
grep '^#' "$0" | grep -v '^#!' | sed 's/^# \{0,1\}//'; exit 0 ;;
|
||||
*) echo "Opción desconocida: $arg" >&2; exit 2 ;;
|
||||
@@ -128,4 +138,33 @@ fi
|
||||
FAIL=0
|
||||
[[ "$DO_LINUX" -eq 1 && "$LIN_OK" -ne 1 ]] && FAIL=1
|
||||
[[ "$DO_WINDOWS" -eq 1 && "$WIN_OK" -ne 1 ]] && FAIL=1
|
||||
|
||||
# --- Publicación a Gitea -----------------------------------------------------
|
||||
# Solo con el build completo: publicar una versión a la que le falta una plataforma
|
||||
# dejaría en el PANEL un release que no se le puede instalar a la mitad de los
|
||||
# servidores. Los paquetes genéricos son inmutables, así que corregirlo obligaría a
|
||||
# quemar el número de versión.
|
||||
if [[ "$DO_PUBLISH" -eq 1 ]]; then
|
||||
echo
|
||||
if [[ "$FAIL" -eq 1 ]]; then
|
||||
err "no se publica: el build no terminó bien"
|
||||
elif [[ "$DO_PACKAGE" -eq 0 ]]; then
|
||||
err "no se publica: --publish necesita el empaquetado (quita --no-package)"
|
||||
FAIL=1
|
||||
elif [[ "$DO_LINUX" -eq 0 || "$DO_WINDOWS" -eq 0 ]]; then
|
||||
err "no se publica: se requieren ambas plataformas (quita --linux-only/--windows-only)"
|
||||
FAIL=1
|
||||
else
|
||||
say "Publicando en Gitea"
|
||||
stage_start
|
||||
if bash "$ROOT/packaging/scripts/publish-release.sh" "${PUBLISH_ARGS[@]+"${PUBLISH_ARGS[@]}"}"; then
|
||||
ok "publicado en Gitea"
|
||||
else
|
||||
err "falló la publicación en Gitea"
|
||||
FAIL=1
|
||||
fi
|
||||
stage_end "Publicación"
|
||||
fi
|
||||
fi
|
||||
|
||||
exit $FAIL
|
||||
|
||||
Reference in New Issue
Block a user