Files
zwischenablage-server/build.sh
T
duffyduckandClaude Opus 5.5 298c142c14 Bauen und Releases ohne lokale Abhaengigkeiten ueber ./build.sh
- build.sh (release, build, test) startet einen temporaeren Runner-Container
  (Python, Git, Docker-CLI), der die Build-Container ueber den Docker-Socket startet
- release.py: Quellexport unter releases/ statt /tmp (Host-Pfade fuer Bind-Mounts),
  Test-Befehl in Docker, Git-Identitaet vorab pruefen, bei Commit-Fehler Versionen zuruecknehmen
- Android-Build-Image enthaelt Platform-Tools fest

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 15:41:45 +02:00

36 lines
1.7 KiB
Bash
Executable File

#!/bin/sh
# Bauen und Releases ohne lokale Abhaengigkeiten - auf dem Rechner wird nur Docker benoetigt.
#
# ./build.sh release [patch|minor|major] [--build] [--targets ...] Version hochzaehlen, committen, taggen
# ./build.sh build [--targets windows,android] aktuellen Stand (HEAD) bauen
# ./build.sh test Krypto-Kompatibilitaet Python <-> Kotlin
#
# Alles laeuft in temporaeren Containern (--rm). Ergebnis: releases/v<version>/
set -e
cd "$(dirname "$0")"
ROOT=$(pwd)
case "${1:-}" in
release) shift ;;
build) shift; set -- --build-only "$@" ;;
test) shift; set -- --test "$@" ;;
*) sed -n '2,8p' "$0"; exit 1 ;;
esac
docker build -q -f docker-build/runner.Dockerfile -t netclip-build-runner docker-build > /dev/null
# Der Runner startet weitere Container ueber den Docker-Socket. Damit deren Bind-Mounts stimmen,
# liegt das Repo im Runner unter demselben absoluten Pfad wie auf dem Host.
SOCK=/var/run/docker.sock
TTY=""; [ -t 0 ] && [ -t 1 ] && TTY="-it"
GITCFG=""; [ -f "$HOME/.gitconfig" ] && GITCFG="-v $HOME/.gitconfig:/home/build/.gitconfig:ro"
# Ersatz-Identitaet fuer Commits, falls user.name/user.email nicht gesetzt sind (wie git auf dem Host)
GITNAME=""
grep -qs "^[[:space:]]*name[[:space:]]*=" "$HOME/.gitconfig" || GITNAME="-e GIT_AUTHOR_NAME=$(id -un) -e GIT_COMMITTER_NAME=$(id -un)"
exec docker run --rm $TTY \
--user "$(id -u):$(id -g)" --group-add "$(stat -c %g "$SOCK")" \
-v "$SOCK:$SOCK" -v "$ROOT:$ROOT" -w "$ROOT" \
-e HOME=/home/build $GITCFG $GITNAME -e EMAIL="$(id -un)@$(hostname -f 2>/dev/null || hostname)" \
netclip-build-runner python3 scripts/release.py "$@"