#!/bin/bash set -e if ! test -e autogen/gen.go; then echo >&2 'error: generate must be run before crossbinary' false fi 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 # Get rid of existing binaries rm -f dist/traefik_* # Build 386 amd64 binaries OS_PLATFORM_ARG=(linux darwin windows freebsd openbsd) OS_ARCH_ARG=(386 amd64) 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 -ldflags "-s -w -X github.com/containous/traefik/version.Version=$VERSION -X github.com/containous/traefik/version.Codename=$CODENAME -X github.com/containous/traefik/version.BuildDate=$DATE" -o "dist/traefik_$OS-$ARCH" . done done # Build arm binaries OS_PLATFORM_ARG=(linux) OS_ARCH_ARG=(arm 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 -ldflags "-s -w -X github.com/containous/traefik/version.Version=$VERSION -X github.com/containous/traefik/version.Codename=$CODENAME -X github.com/containous/traefik/version.BuildDate=$DATE" -o "dist/traefik_$OS-$ARCH" . done done