mirror of
				https://github.com/go-delve/delve.git
				synced 2025-11-04 14:36:47 +08:00 
			
		
		
		
	* *: randomize testnextnethttp.go listen port * service/test: prefer t.Setenv * *: cleanup port pid files * service: fix final parallelization bugs * address review feedback * pkg/proc: fix test on windows * fix finding port file on TestIssue462
		
			
				
	
	
		
			90 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
set -e
 | 
						|
set -x
 | 
						|
 | 
						|
version=$1
 | 
						|
arch=$2
 | 
						|
 | 
						|
apt-get -qq update
 | 
						|
if [ "$arch" = "ppc64le" ]; then
 | 
						|
	apt-get install --no-upgrade -y wget jq
 | 
						|
else
 | 
						|
	apt-get install --no-upgrade -y gcc wget jq lsof
 | 
						|
fi
 | 
						|
 | 
						|
 | 
						|
if [ "$arch" != "ppc64le" ]; then
 | 
						|
	apt-get install -y dwz
 | 
						|
	dwz --version
 | 
						|
fi
 | 
						|
 | 
						|
function getgo {
 | 
						|
	export GOROOT=/usr/local/go/$1
 | 
						|
	if [ ! -d "$GOROOT" ]; then
 | 
						|
		wget -q https://dl.google.com/go/"$1".linux-"${arch}".tar.gz
 | 
						|
		mkdir -p /usr/local/go
 | 
						|
		tar -C /usr/local/go -xzf "$1".linux-"${arch}".tar.gz
 | 
						|
		mv -f /usr/local/go/go "$GOROOT"
 | 
						|
	fi
 | 
						|
}
 | 
						|
 | 
						|
if [ "$version" = "gotip" ]; then
 | 
						|
	echo Building Go from tip
 | 
						|
	getgo $(wget -q -O - https://go.dev/VERSION?m=text | head -1)
 | 
						|
	export GOROOT_BOOTSTRAP=$GOROOT
 | 
						|
	export GOROOT=/usr/local/go/go-tip
 | 
						|
	apt-get install -y git
 | 
						|
	git clone https://go.googlesource.com/go /usr/local/go/go-tip
 | 
						|
	cd /usr/local/go/go-tip/src
 | 
						|
	./make.bash
 | 
						|
	cd -
 | 
						|
else
 | 
						|
	echo Finding latest patch version for $version
 | 
						|
	echo "Go $version on $arch"
 | 
						|
	version=$(wget -q -O - 'https://go.dev/dl/?mode=json&include=all' | jq '.[].version' --raw-output | egrep ^$version'($|\.|beta|rc)' | sort -rV | head -1)
 | 
						|
	if [ "x$version" = "x" ]; then
 | 
						|
		version=$(wget -q -O - 'https://go.dev/dl/?mode=json&include=all' | jq '.[].version' --raw-output | egrep ^$version'($|\.)' | sort -rV | head -1)
 | 
						|
	fi
 | 
						|
	getgo $version
 | 
						|
fi
 | 
						|
 | 
						|
GOPATH=$(pwd)/go
 | 
						|
export GOPATH
 | 
						|
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
 | 
						|
go version
 | 
						|
if [ "$arch" != "ppc64le" ]; then
 | 
						|
	go install honnef.co/go/tools/cmd/staticcheck@2025.1.1 || true
 | 
						|
fi
 | 
						|
 | 
						|
go install github.com/google/capslock/cmd/capslock@latest
 | 
						|
 | 
						|
uname -a
 | 
						|
echo "$PATH"
 | 
						|
echo "$GOROOT"
 | 
						|
echo "$GOPATH"
 | 
						|
cd delve
 | 
						|
 | 
						|
# Starting with go1.18 'go build' and 'go run' will try to stamp the build
 | 
						|
# with the current VCS revision, which does not work with TeamCity
 | 
						|
if [ "$version" = "gotip" ]; then
 | 
						|
	export GOFLAGS=-buildvcs=false
 | 
						|
elif [ ${version:4:2} -gt 17 ]; then
 | 
						|
	export GOFLAGS=-buildvcs=false
 | 
						|
fi
 | 
						|
 | 
						|
if [ "$arch" = "386" ]; then
 | 
						|
	ver=$(go version)
 | 
						|
	if [ "$ver" = "go version go1.19 linux/386" ]; then
 | 
						|
		export CGO_CFLAGS='-g -O0 -fno-stack-protector'
 | 
						|
	fi
 | 
						|
fi
 | 
						|
 | 
						|
set +e
 | 
						|
go run _scripts/make.go test
 | 
						|
x=$?
 | 
						|
if [ "$version" = "gotip" ]; then
 | 
						|
	exit 0
 | 
						|
else
 | 
						|
	exit $x
 | 
						|
fi
 |