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>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
ecefd347b2
commit
298c142c14
@@ -0,0 +1,35 @@
|
||||
#!/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 "$@"
|
||||
Reference in New Issue
Block a user