diff --git a/bin/go-compile.sh b/bin/go-compile.sh
new file mode 100755
index 0000000000000000000000000000000000000000..e78df6b438124af66a8e93eee51b89ad5c1463ee
--- /dev/null
+++ b/bin/go-compile.sh
@@ -0,0 +1,52 @@
+#!/usr/bin/env bash
+set -x
+
+
+SOURCE_PATH=$1
+BUILD_PATH=$2
+COMPONENT_SLUG=$3
+GO_RELEASE_PACKAGE_NAME=$4
+PROJECT_VERSION=$5
+PROJECT_BUILD_DATE=$6
+platforms=$(go tool dist list)
+
+included_os=("linux" "windows")
+
+# define a list of excluded architectures
+included_arch=("amd64" "arm64")
+
+cd $SOURCE_PATH || exit 1
+
+# Run and build loop through all platforms (except excluded ones)
+for platform in $platforms; do
+
+  # GOOS und GOARCH Variablen setzen
+  export GOOS=$(echo $platform | cut -d'/' -f1)
+  export GOARCH=$(echo $platform | cut -d'/' -f2)
+
+  if [[ ! "${included_os[@]}" =~ "$GOOS" ]]; then
+    echo "Skipping excluded platform: $GOOS"
+    continue
+  fi
+
+  if [[ ! "${included_arch[@]}" =~ "$GOARCH" ]]; then
+    echo "Skipping excluded architecture: $GOARCH"
+    continue
+  fi
+
+  echo "============================================"
+  echo "Building for $GOOS/$GOARCH"
+
+  output_name=$BUILD_PATH$COMPONENT_SLUG-$GOOS-$GOARCH
+  if [ $GOOS = "windows" ]; then
+    output_name+='.exe'
+  fi
+
+  env GOFLAGS= GOWORK=off GO111MODULE=on GOOS=$GOOS GOARCH=$GOARCH go build -ldflags "-X $GO_RELEASE_PACKAGE_NAME.version=$PROJECT_VERSION -X $GO_RELEASE_PACKAGE_NAME.build=$PROJECT_BUILD_DATE" -o $output_name
+  if [ $? -ne 0 ]; then
+    echo "An error has occurred! $output_name build failed."
+    echo "============================================"
+  fi
+done
+
+cd - || exit 1