feat: custom go-builder-fast with prebuilt stdlib for plugin mode

This commit is contained in:
Naeel
2026-04-25 15:14:37 +03:00
parent 3b9c6e2c5e
commit 42b239bb51
2 changed files with 52 additions and 0 deletions
+34
View File
@@ -0,0 +1,34 @@
#!/bin/bash
set -eux
srcDir=${GOPATH}/src/$(basename ${SRC_PKG})
trap "rm -rf ${srcDir}" EXIT
version_ge() { test "$(echo "$@" | tr " " "\n" | sort -rV | head -n 1)" == "$1"; }
if [ -d ${SRC_PKG} ]; then
echo "Building in directory ${srcDir}"
ln -sf ${SRC_PKG} ${srcDir}
elif [ -f ${SRC_PKG} ]; then
echo "Building file ${SRC_PKG} in ${srcDir}"
mkdir -p ${srcDir}
cp ${SRC_PKG} ${srcDir}/function.go
fi
cd ${srcDir}
if [ -f "go.mod" ]; then
go mod download
else
export GO111MODULE="on"
go mod init
go mod tidy
fi
GOFLAGS="-buildmode=plugin"
if [ -d "vendor" ] && version_ge ${GOLANG_VERSION} "1.12"; then
GOFLAGS="${GOFLAGS} -mod=vendor"
fi
go build ${GOFLAGS} -o ${DEPLOY_PKG} .