#!/bin/bash set -e # Get the parent directory path PARENT_PATH=$(dirname $( cd $(dirname $0) pwd -P )) # Set VERSION (you can modify this to get the version from a file or environment variable) VERSION=$(git describe --tags --always --dirty 2>/dev/null || echo "unknown") # Define OS and ARCH arrays declare -a OS=("darwin" "linux") declare -a ARCH=("amd64" "arm64") # Change to the parent directory pushd $PARENT_PATH # Function to handle errors handle_error() { echo "Error occurred in build for $1 $2" echo "Build command: VERSION=$VERSION GOOS=$1 GOARCH=$2 ./scripts/build" echo "Exit code: $3" echo "You may want to run this build manually to see more detailed error messages." } echo "Starting builds for version: $VERSION" # Loop through OS and ARCH combinations for os in "${OS[@]}"; do for arch in "${ARCH[@]}"; do echo "Building for $os $arch" if VERSION=$VERSION GOOS=$os GOARCH=$arch ./scripts/build; then echo "Build successful for $os $arch" else handle_error $os $arch $? fi echo "------------------------" done done # Return to the original directory popd echo "All builds completed for version $VERSION."