#!/bin/bash set -e TAG="$1" if [ -z "$TAG" ]; then echo "Please enter a version!" exit 1 fi ######################################## # Create local git tag ######################################## # Falls Tag existiert → löschen (lokal + remote) if git rev-parse "$TAG" >/dev/null 2>&1; then echo "Tag '$TAG' alredy exists and will be deleted..." git tag -d "$TAG" fi # Neues Tag erzeugen echo "Create tag '$TAG'..." git tag "$TAG" ######################################## # Publish ######################################## build_for_dir () { local dir="$1" echo "→ Executing embedded publish commands in $dir ..." ( cd "$dir" # Helper to avoid repetition build() { local runtime="$1" local kind="$2" pupnet -y -v "$TAG[1]" -r "$runtime" -k "$kind" } # linux-x64 build linux-x64 appimage & # build linux-x64 flatpak & # build linux-x64 deb & # build linux-x64 rpm & # linux-arm64 build linux-arm64 appimage & # build linux-arm64 flatpak & # build linux-arm64 deb & # build linux-arm64 rpm & # windows build win-x64 zip & build win-arm64 zip & # macOS build osx-x64 zip & build osx-arm64 zip & wait # <--- wartet auf ALLE oben gestarteten Jobs echo "All builds for $dir completed." ) } for dir in ../*/; do if [ -f "${dir}app.pupnet.conf" ]; then build_for_dir "$dir" fi done ######################################## # Push git tag ######################################## echo "Push tag '$TAG'..." git push --delete origin "$TAG" || true git push origin "$TAG" --force ######################################## # Remove artifacts ######################################## echo "Remove artifacts..." rm -r ../publish/*/Artifacts* echo "Completed!"