2017-04-21 09:23:45 +00:00
|
|
|
#!/usr/bin/env bash
|
2015-09-27 13:54:44 +00:00
|
|
|
set -e
|
|
|
|
|
2015-11-01 15:35:01 +00:00
|
|
|
if ! test -e autogen/gen.go; then
|
|
|
|
echo >&2 'error: generate must be run before crossbinary'
|
2015-09-27 13:54:44 +00:00
|
|
|
false
|
|
|
|
fi
|
|
|
|
|
2015-10-14 20:04:56 +00:00
|
|
|
if [ -z "$VERSION" ]; then
|
|
|
|
VERSION=$(git rev-parse HEAD)
|
|
|
|
fi
|
|
|
|
|
2016-07-05 19:03:37 +00:00
|
|
|
if [ -z "$CODENAME" ]; then
|
|
|
|
CODENAME=cheddar
|
|
|
|
fi
|
|
|
|
|
2015-10-14 20:04:56 +00:00
|
|
|
if [ -z "$DATE" ]; then
|
|
|
|
DATE=$(date -u '+%Y-%m-%d_%I:%M:%S%p')
|
|
|
|
fi
|
|
|
|
|
2017-05-04 07:31:39 +00:00
|
|
|
GIT_REPO_URL='github.com/containous/traefik/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"
|
|
|
|
|
2015-09-27 13:54:44 +00:00
|
|
|
# Get rid of existing binaries
|
|
|
|
rm -f dist/traefik_*
|
|
|
|
|
2016-07-05 14:02:36 +00:00
|
|
|
# Build 386 amd64 binaries
|
2017-01-27 08:37:45 +00:00
|
|
|
OS_PLATFORM_ARG=(linux darwin windows freebsd openbsd)
|
2016-07-05 14:02:36 +00:00
|
|
|
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..."
|
2017-05-04 07:31:39 +00:00
|
|
|
GOARCH=$ARCH GOOS=$OS CGO_ENABLED=0 $GO_BUILD_CMD "$GO_BUILD_OPT" -o "dist/traefik_$OS-$ARCH" ./cmd/traefik/
|
2016-07-05 14:02:36 +00:00
|
|
|
done
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
|
|
# Build arm binaries
|
|
|
|
OS_PLATFORM_ARG=(linux)
|
|
|
|
OS_ARCH_ARG=(arm arm64)
|
2016-05-04 10:51:15 +00:00
|
|
|
for OS in ${OS_PLATFORM_ARG[@]}; do
|
|
|
|
for ARCH in ${OS_ARCH_ARG[@]}; do
|
|
|
|
echo "Building binary for $OS/$ARCH..."
|
2017-05-04 07:31:39 +00:00
|
|
|
GOARCH=$ARCH GOOS=$OS CGO_ENABLED=0 $GO_BUILD_CMD "$GO_BUILD_OPT" -o "dist/traefik_$OS-$ARCH" ./cmd/traefik/
|
2016-05-04 10:51:15 +00:00
|
|
|
done
|
2016-11-14 15:34:07 +00:00
|
|
|
done
|