Pulled build script out of Dockerfile to facilitate native builds, changed the base image from alpine-s6 to alpine and used tini as entrypoint

This commit is contained in:
Swarup Sengupta
2025-06-29 03:34:37 +05:30
parent 1e6b14afba
commit 02fe2a0c63
4 changed files with 177 additions and 62 deletions
+15 -16
View File
@@ -43,28 +43,24 @@ while [[ $# -gt 0 ]]; do
esac
done
source ./lastest_version.sh
MYPATH=$(dirname "$(readlink -f "$0")")
source "${MYPATH}/latest_version.sh"
if [[ -z "${PSIPHON_VERSION}" ]]; then
PSIPHON_VERSION=$(get_latest_version)
else
if ! validate_version_format "$PSIPHON_VERSION"; then
if ! validate_version_format "${PSIPHON_VERSION}"; then
echo "Invalid Psiphon version format. Please use 'X.Y.Z' or 'vX.Y.Z' format."
exit 1
fi
fi
PSIPHON_VERSION=$(normalize_version "$PSIPHON_VERSION")
PSIPHON_VERSION=$(normalize_version "${PSIPHON_VERSION}")
ALL_TARGETS="linux/amd64,linux/386,linux/arm64,linux/arm/v7,linux/arm/v6,windows/amd64,windows/386,darwin/amd64,darwin/arm64"
CURRENT_TARGET="$(go env GOOS)/$(go env GOARCH)"
TARGETS=${TARGETS:-"current"}
if [[ "${TARGETS}" == "current" ]]; then
TARGETS="${CURRENT_TARGET}"
elif [[ "${TARGETS}" == "all" ]]; then
TARGETS="${ALL_TARGETS}"
fi
TARGETS=$(decipher_targets "${TARGETS}")
TARGETS=${TARGETS//,/ }
BUILD_DIR=$(pwd)/tmp_build_$$
@@ -79,20 +75,23 @@ mkdir -p "${BIN_DIR}"
curl -sL https://github.com/Psiphon-Labs/psiphon-tunnel-core/archive/refs/tags/${PSIPHON_VERSION}.tar.gz | tar xz --strip-components=1 -C "${BUILD_DIR}"
pushd "${BUILD_DIR}/ConsoleClient" > /dev/null
export CGO_ENABLED=0
for PLATFORM in ${TARGETS}
do
IFS='/' read -r OS ARCH VARIANT <<< "${PLATFORM}"
export GOOS=${OS}
export GOARCH=${ARCH}
if [[ -n "${VARIANT}" ]]; then
export GOARM=${VARIANT#v}
fi
GOEXT=""
if [[ "${OS}" == "windows" ]]; then
GOEXT=".exe"
fi
GOARM_ENV=""
if [[ -n "${VARIANT}" ]]; then
GOARM_ENV="GOARM=${VARIANT#v}"
fi
CGO_ENABLED=0 GOOS=${OS} GOARCH=${ARCH} ${GOARM_ENV} ${GO} build -a -tags netgo -ldflags "-s -w -extldflags '-static'" -o "${BIN_DIR}/psiphon_${PLATFORM//\//_}${GOEXT}"
${GO} build -a -tags netgo -ldflags "-s -w -extldflags '-static'" -o "${BIN_DIR}/psiphon_${PLATFORM//\//_}${GOEXT}"
unset GOOS GOARCH GOARM
done
popd > /dev/null