mirror of
				https://github.com/traefik/traefik.git
				synced 2025-11-04 02:11:15 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
set -e
 | 
						|
 | 
						|
if [ -z "$VERSION" ]; then
 | 
						|
    VERSION=$(git rev-parse HEAD)
 | 
						|
fi
 | 
						|
 | 
						|
if [ -z "$CODENAME" ]; then
 | 
						|
    CODENAME=cheddar
 | 
						|
fi
 | 
						|
 | 
						|
if [ -z "$DATE" ]; then
 | 
						|
    DATE=$(date -u '+%Y-%m-%d_%I:%M:%S%p')
 | 
						|
fi
 | 
						|
 | 
						|
echo "Building ${VERSION} ${CODENAME} ${DATE}"
 | 
						|
 | 
						|
GIT_REPO_URL='github.com/traefik/traefik/pkg/version'
 | 
						|
GO_BUILD_CMD="go build -ldflags"
 | 
						|
GO_BUILD_OPT="-s -w -X ${GIT_REPO_URL}.Version=${VERSION} -X ${GIT_REPO_URL}.Codename=${CODENAME} -X ${GIT_REPO_URL}.BuildDate=${DATE}"
 | 
						|
 | 
						|
# Build amd64 binaries
 | 
						|
OS_PLATFORM_ARG=(linux windows darwin)
 | 
						|
OS_ARCH_ARG=(amd64)
 | 
						|
for OS in "${OS_PLATFORM_ARG[@]}"; do
 | 
						|
  BIN_EXT=''
 | 
						|
  if [ "$OS" == "windows" ]; then
 | 
						|
    BIN_EXT='.exe'
 | 
						|
  fi
 | 
						|
  for ARCH in "${OS_ARCH_ARG[@]}"; do
 | 
						|
    echo "Building binary for ${OS}/${ARCH}..."
 | 
						|
    GOARCH=${ARCH} GOOS=${OS} CGO_ENABLED=0 ${GO_BUILD_CMD} "${GO_BUILD_OPT}" -o "dist/traefik_${OS}-${ARCH}${BIN_EXT}" ./cmd/traefik/
 | 
						|
  done
 | 
						|
done
 | 
						|
 | 
						|
# Build arm64 binaries
 | 
						|
OS_PLATFORM_ARG=(linux)
 | 
						|
OS_ARCH_ARG=(arm64)
 | 
						|
for OS in "${OS_PLATFORM_ARG[@]}"; do
 | 
						|
  for ARCH in "${OS_ARCH_ARG[@]}"; do
 | 
						|
    echo "Building binary for ${OS}/${ARCH}..."
 | 
						|
    GOARCH=${ARCH} GOOS=${OS} CGO_ENABLED=0 ${GO_BUILD_CMD} "${GO_BUILD_OPT}" -o "dist/traefik_${OS}-${ARCH}" ./cmd/traefik/
 | 
						|
  done
 | 
						|
done
 |