2017-05-03 04:00:05 +00:00
|
|
|
#!/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
|
|
|
|
|
2017-09-08 12:50:04 +00:00
|
|
|
echo "Building ${VERSION} ${CODENAME} ${DATE}"
|
|
|
|
|
2017-05-04 07:31:39 +00:00
|
|
|
GIT_REPO_URL='github.com/containous/traefik/version'
|
|
|
|
GO_BUILD_CMD="go build -ldflags"
|
2017-09-08 12:50:04 +00:00
|
|
|
GO_BUILD_OPT="-s -w -X ${GIT_REPO_URL}.Version=${VERSION} -X ${GIT_REPO_URL}.Codename=${CODENAME} -X ${GIT_REPO_URL}.BuildDate=${DATE}"
|
2017-05-04 07:31:39 +00:00
|
|
|
|
2017-11-14 15:48:03 +00:00
|
|
|
# Build amd64 binaries
|
2017-05-03 04:00:05 +00:00
|
|
|
OS_PLATFORM_ARG=(linux windows darwin)
|
|
|
|
OS_ARCH_ARG=(amd64)
|
|
|
|
for OS in ${OS_PLATFORM_ARG[@]}; do
|
2017-11-14 15:48:03 +00:00
|
|
|
BIN_EXT=''
|
|
|
|
if [ "$OS" == "windows" ]; then
|
|
|
|
BIN_EXT='.exe'
|
|
|
|
fi
|
2017-05-03 04:00:05 +00:00
|
|
|
for ARCH in ${OS_ARCH_ARG[@]}; do
|
2017-09-08 12:50:04 +00:00
|
|
|
echo "Building binary for ${OS}/${ARCH}..."
|
2017-11-14 15:48:03 +00:00
|
|
|
GOARCH=${ARCH} GOOS=${OS} CGO_ENABLED=0 ${GO_BUILD_CMD} "${GO_BUILD_OPT}" -o "dist/traefik_${OS}-${ARCH}${BIN_EXT}" ./cmd/traefik/
|
2017-05-03 04:00:05 +00:00
|
|
|
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
|
2017-09-08 12:50:04 +00:00
|
|
|
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/
|
2017-05-03 04:00:05 +00:00
|
|
|
done
|
|
|
|
done
|