mirror of
https://github.com/kemko/nomad.git
synced 2026-01-02 16:35:44 +03:00
https://github.com/hashicorp/nomad/pull/421 removed the last piece of CGO dependant code. We we can stop building binaries with CGO enabled now.
85 lines
2.0 KiB
Bash
Executable File
85 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# This script builds the application from source for multiple platforms.
|
|
set -e
|
|
|
|
# Get the parent directory of where this script is.
|
|
SOURCE="${BASH_SOURCE[0]}"
|
|
while [ -h "$SOURCE" ] ; do SOURCE="$(readlink "$SOURCE")"; done
|
|
DIR="$( cd -P "$( dirname "$SOURCE" )/.." && pwd )"
|
|
|
|
# Change into that directory
|
|
cd "$DIR"
|
|
|
|
# Get the git commit
|
|
GIT_COMMIT=$(git rev-parse HEAD)
|
|
GIT_DIRTY=$(test -n "`git status --porcelain`" && echo "+CHANGES" || true)
|
|
|
|
# Determine the arch/os combos we're building for
|
|
XC_ARCH=${XC_ARCH:-"386 amd64 arm"}
|
|
XC_OS=${XC_OS:-linux darwin windows freebsd openbsd}
|
|
|
|
# Install dependencies
|
|
echo "==> Getting dependencies..."
|
|
go get ./...
|
|
|
|
# Delete the old dir
|
|
echo "==> Removing old directory..."
|
|
rm -f bin/*
|
|
rm -rf pkg/*
|
|
mkdir -p bin/
|
|
|
|
# If its dev mode, only build for ourself
|
|
if [[ "${NOMAD_DEV}" ]]; then
|
|
XC_OS=$(go env GOOS)
|
|
XC_ARCH=$(go env GOARCH)
|
|
fi
|
|
|
|
# Build!
|
|
echo "==> Building..."
|
|
gox \
|
|
-os="${XC_OS}" \
|
|
-os="!freebsd" \
|
|
-os="!openbsd" \
|
|
-arch="${XC_ARCH}" \
|
|
-osarch="!linux/arm !darwin/386" \
|
|
-ldflags "-X main.GitCommit ${GIT_COMMIT}${GIT_DIRTY}" \
|
|
-output "pkg/{{.OS}}_{{.Arch}}/nomad" \
|
|
.
|
|
|
|
# Move all the compiled things to the $GOPATH/bin
|
|
GOPATH=${GOPATH:-$(go env GOPATH)}
|
|
case $(uname) in
|
|
CYGWIN*)
|
|
GOPATH="$(cygpath $GOPATH)"
|
|
;;
|
|
esac
|
|
OLDIFS=$IFS
|
|
IFS=: MAIN_GOPATH=($GOPATH)
|
|
IFS=$OLDIFS
|
|
|
|
# Copy our OS/Arch to the bin/ directory
|
|
DEV_PLATFORM="./pkg/$(go env GOOS)_$(go env GOARCH)"
|
|
for F in $(find ${DEV_PLATFORM} -mindepth 1 -maxdepth 1 -type f); do
|
|
cp ${F} bin/
|
|
cp ${F} ${MAIN_GOPATH}/bin/
|
|
done
|
|
|
|
if [[ "x${NOMAD_DEV}" == "x" ]]; then
|
|
# Zip and copy to the dist dir
|
|
echo "==> Packaging..."
|
|
for PLATFORM in $(find ./pkg -mindepth 1 -maxdepth 1 -type d); do
|
|
OSARCH=$(basename ${PLATFORM})
|
|
echo "--> ${OSARCH}"
|
|
|
|
pushd $PLATFORM >/dev/null 2>&1
|
|
zip ../${OSARCH}.zip ./*
|
|
popd >/dev/null 2>&1
|
|
done
|
|
fi
|
|
|
|
# Done!
|
|
echo
|
|
echo "==> Results:"
|
|
ls -hl bin/
|