mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 01:53:42 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			65 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/usr/bin/env sh
 | 
						|
 | 
						|
# Test script checking that all expected os/arch compile properly.
 | 
						|
# Does not actually test the logic, just the compilation so we make sure we don't break code depending on the lib.
 | 
						|
 | 
						|
echo2() {
 | 
						|
  echo $@ >&2
 | 
						|
}
 | 
						|
 | 
						|
trap end 0
 | 
						|
end() {
 | 
						|
  [ "$?" = 0 ] && echo2 "Pass." || (echo2 "Fail."; exit 1)
 | 
						|
}
 | 
						|
 | 
						|
cross() {
 | 
						|
  os=$1
 | 
						|
  shift
 | 
						|
  echo2 "Build for $os."
 | 
						|
  for arch in $@; do
 | 
						|
    echo2 "  - $os/$arch"
 | 
						|
    GOOS=$os GOARCH=$arch go build
 | 
						|
  done
 | 
						|
  echo2
 | 
						|
}
 | 
						|
 | 
						|
set -e
 | 
						|
 | 
						|
cross linux     amd64 386 arm arm64 ppc64 ppc64le s390x mips mipsle mips64 mips64le
 | 
						|
cross darwin    amd64 arm64
 | 
						|
cross freebsd   amd64 386 arm arm64
 | 
						|
cross netbsd    amd64 386 arm arm64
 | 
						|
cross openbsd   amd64 386 arm arm64
 | 
						|
cross dragonfly amd64
 | 
						|
cross solaris   amd64
 | 
						|
 | 
						|
# Not expected to work but should still compile.
 | 
						|
cross windows amd64 386 arm
 | 
						|
 | 
						|
# TODO: Fix compilation error on openbsd/arm.
 | 
						|
# TODO: Merge the solaris PR.
 | 
						|
 | 
						|
# Some os/arch require a different compiler. Run in docker.
 | 
						|
if ! hash docker; then
 | 
						|
  # If docker is not present, stop here.
 | 
						|
  return
 | 
						|
fi
 | 
						|
 | 
						|
echo2 "Build for linux."
 | 
						|
echo2 "  - linux/riscv"
 | 
						|
docker build -t creack-pty-test -f Dockerfile.riscv .
 | 
						|
 | 
						|
# Golang dropped support for darwin 32bits since go1.15. Make sure the lib still compile with go1.14 on those archs.
 | 
						|
echo2 "Build for darwin (32bits)."
 | 
						|
echo2 "  - darwin/386"
 | 
						|
docker build -t creack-pty-test -f Dockerfile.golang --build-arg=GOVERSION=1.14 --build-arg=GOOS=darwin --build-arg=GOARCH=386 .
 | 
						|
echo2 "  - darwin/arm"
 | 
						|
docker build -t creack-pty-test -f Dockerfile.golang --build-arg=GOVERSION=1.14 --build-arg=GOOS=darwin --build-arg=GOARCH=arm .
 | 
						|
 | 
						|
# Run a single test for an old go version. Would be best with go1.0, but not available on Dockerhub.
 | 
						|
# Using 1.6 as it is the base version for the RISCV compiler.
 | 
						|
# Would also be better to run all the tests, not just one, need to refactor this file to allow for specifc archs per version.
 | 
						|
echo2 "Build for linux - go1.6."
 | 
						|
echo2 "  - linux/amd64"
 | 
						|
docker build -t creack-pty-test -f Dockerfile.golang --build-arg=GOVERSION=1.6 --build-arg=GOOS=linux --build-arg=GOARCH=amd64 .
 |