diff --git a/contrib/nightly/build-cross-platform.sh b/contrib/nightly/build-cross-platform.sh deleted file mode 100755 index 7bb1d900cf8bc1a8f423e2b5f18d021ca412636a..0000000000000000000000000000000000000000 --- a/contrib/nightly/build-cross-platform.sh +++ /dev/null @@ -1,90 +0,0 @@ -#!/bin/bash - -# This script is used to compile and tar gzip the release binaries so that they -# can be uploaded to Github. It would typically only be used by Dgraph developers -# while doing a new release. If you are looking to build Dgraph, you should run a -# go build from inside $GOPATH/src/github.com/dgraph-io/dgraph/cmd/dgraph - -# Exit script in case an error is encountered. -set -e - -echo -e "\n\n Downloading xgo" -go get github.com/karalabe/xgo - -platform=$1 -asset_suffix=$2 -cur_dir=$(pwd); -tmp_dir=/tmp/dgraph-build; -release_version=$(git describe --abbrev=0); -if [[ -n $asset_suffix ]]; then - release_version="$release_version${asset_suffix}" -fi - -# TODO - Add checksum file later when we support get.dgraph.io for Windows. - -# If temporary directory already exists delete it. -if [ -d "$tmp_dir" ]; then - rm -rf $tmp_dir -fi - -mkdir $tmp_dir; - -source $GOPATH/src/github.com/dgraph-io/dgraph/contrib/nightly/constants.sh - -pushd $GOPATH/src/github.com/dgraph-io/dgraph/dgraph > /dev/null - -if [[ $platform == "windows" ]]; then - xgo_target="windows/amd64" -else - xgo_target="darwin-10.9/amd64" -fi - -echo -e "\n\n\033[1;33mBuilding binaries for $platform\033[0m" -xgo --go 1.10.x --targets $xgo_target -ldflags \ - "-X $release=$release_version -X $branch=$gitBranch -X $commitSHA1=$lastCommitSHA1 -X '$commitTime=$lastCommitTime'" .; - -echo -e "\n\033[1;33mCopying binaries to tmp folder\033[0m" -if [[ $platform == "windows" ]]; then - mv dgraph-windows-4.0-amd64.exe $tmp_dir/dgraph.exe -else - mv dgraph-darwin-10.9-amd64 $tmp_dir/dgraph -fi - - -pushd $ratel -echo -e "\033[1;33mBuilding ratel binary for $platform\033[0m" -if [[ $platform == "windows" ]]; then - GOOS=windows GOARCH=amd64 go build -ldflags \ - "-X $ratel_release=$release_version" -o dgraph-ratel.exe . - mv dgraph-ratel.exe $tmp_dir -else - GOOS=darwin GOARCH=amd64 go build -ldflags \ - "-X $ratel_release=$release_version" -o dgraph-ratel . - mv dgraph-ratel $tmp_dir -fi -popd - -echo -e "\n\033[1;34mSize of files: $(du -sh $tmp_dir)\033[0m" - -echo -e "\n\033[1;33mCreating tar file\033[0m" -tar_file=dgraph-"$platform"-amd64.tar.gz - -# Create a tar file with the contents of the dgraph folder (i.e the binaries) -if [[ $platform == "windows" ]]; then - tar -zcvf $tar_file -C $tmp_dir . -else - checksum=$(shasum -a 256 $tmp_dir/dgraph | awk '{print $1}') - echo "$checksum /usr/local/bin/dgraph" >> $cur_dir/"dgraph-checksum-darwin-amd64.sha256" - - checksum=$(shasum -a 256 $tmp_dir/dgraph-ratel | awk '{print $1}') - echo "$checksum /usr/local/bin/dgraph-ratel" >> $cur_dir/"dgraph-checksum-darwin-amd64.sha256" - - tar -zcvf $tar_file -C $tmp_dir . -fi - -echo -e "\n\033[1;34mSize of tar file: $(du -sh $tar_file)\033[0m" - -echo -e "\n\033[1;33mMoving tarfile to original directory\033[0m" -mv $tar_file $cur_dir -rm -rf $tmp_dir - diff --git a/contrib/nightly/constants.sh b/contrib/nightly/constants.sh deleted file mode 100644 index 519b638dcb8177d8bf3ff826d4d0ec4f0499cd6b..0000000000000000000000000000000000000000 --- a/contrib/nightly/constants.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -set -e - - -lastCommitSHA1=$(git rev-parse --short HEAD); -gitBranch=$(git rev-parse --abbrev-ref HEAD) -lastCommitTime=$(git log -1 --format=%ci) -dgraph_cmd=$GOPATH/src/github.com/dgraph-io/dgraph/dgraph; - -ratel_release="github.com/dgraph-io/ratel/server.ratelVersion" -release="github.com/dgraph-io/dgraph/x.dgraphVersion" -branch="github.com/dgraph-io/dgraph/x.gitBranch" -commitSHA1="github.com/dgraph-io/dgraph/x.lastCommitSHA" -commitTime="github.com/dgraph-io/dgraph/x.lastCommitTime" - -ratel=$GOPATH/src/github.com/dgraph-io/ratel; diff --git a/contrib/release.sh b/contrib/release.sh new file mode 100755 index 0000000000000000000000000000000000000000..3f51b936aa9dd6f6309733346f75196b4cfc35d3 --- /dev/null +++ b/contrib/release.sh @@ -0,0 +1,151 @@ +#!/bin/bash + +# Script to do Dgraph release. This script would output the built binaries in +# $TMP. This script should NOT be responsible for doing any testing, or +# uploading to any server. The sole task of this script is to build the +# binaries and prepare them such that any human or script can then pick these up +# and use them as they deem fit. + +# Don't use standard GOPATH. Create a new one. +GOPATH="/tmp/go" +rm -Rf $GOPATH +mkdir $GOPATH + +TAG=$1 +TMP="/tmp/build" +rm -Rf $TMP +mkdir $TMP + +if [ -z "$TAG" ]; then + echo "Must specify which tag to build for." + exit 1 +fi +echo "Building Dgraph for tag: $TAG" + +# Stop on first failure. +set -e +set -o xtrace + +# Check for existence of strip tool. +type strip +type shasum + +ratel_release="github.com/dgraph-io/ratel/server.ratelVersion" +release="github.com/dgraph-io/dgraph/x.dgraphVersion" +branch="github.com/dgraph-io/dgraph/x.gitBranch" +commitSHA1="github.com/dgraph-io/dgraph/x.lastCommitSHA" +commitTime="github.com/dgraph-io/dgraph/x.lastCommitTime" + +echo "Using Go version" +go version + +go get -u github.com/jteeuwen/go-bindata/... +go get -d -u golang.org/x/net/context +go get -d google.golang.org/grpc +go get -u github.com/prometheus/client_golang/prometheus +go get -u github.com/dgraph-io/dgo +# go get github.com/stretchr/testify/require +go get -u github.com/karalabe/xgo + +pushd $GOPATH/src/google.golang.org/grpc + git checkout v1.13.0 +popd + +basedir=$GOPATH/src/github.com/dgraph-io +# Clone Dgraph repo. +pushd $basedir + git clone git@github.com:dgraph-io/dgraph.git +popd + +pushd $basedir/dgraph + git pull + git checkout $TAG + # HEAD here points to whatever is checked out. + lastCommitSHA1=$(git rev-parse --short HEAD); + gitBranch=$(git rev-parse --abbrev-ref HEAD) + lastCommitTime=$(git log -1 --format=%ci) + release_version=$(git describe --abbrev=0); +popd + +# Clone ratel repo. +pushd $basedir + git clone git@github.com:dgraph-io/ratel.git +popd + +pushd $basedir/ratel + git pull + source ~/.nvm/nvm.sh + nvm install --lts + ./scripts/build.prod.sh +popd + +# Build Windows. +pushd $basedir/dgraph/dgraph + xgo --targets=windows/amd64 -ldflags \ + "-X $release=$release_version -X $branch=$gitBranch -X $commitSHA1=$lastCommitSHA1 -X '$commitTime=$lastCommitTime'" . + mkdir $TMP/windows + mv dgraph-windows-4.0-amd64.exe $TMP/windows/dgraph.exe +popd + +pushd $basedir/ratel + xgo --targets=windows/amd64 -ldflags "-X $ratel_release=$release_version" . + mv ratel-windows-4.0-amd64.exe $TMP/windows/dgraph-ratel.exe +popd + +# Build Darwin. +pushd $basedir/dgraph/dgraph + xgo --targets=darwin-10.9/amd64 -ldflags \ + "-X $release=$release_version -X $branch=$gitBranch -X $commitSHA1=$lastCommitSHA1 -X '$commitTime=$lastCommitTime'" . + mkdir $TMP/darwin + mv dgraph-darwin-10.9-amd64 $TMP/darwin/dgraph +popd + +pushd $basedir/ratel + xgo --targets=darwin-10.9/amd64 -ldflags "-X $ratel_release=$release_version" . + mv ratel-darwin-10.9-amd64 $TMP/darwin/dgraph-ratel +popd + +# Build Linux. +pushd $basedir/dgraph/dgraph + xgo --targets=linux/amd64 -ldflags \ + "-X $release=$release_version -X $branch=$gitBranch -X $commitSHA1=$lastCommitSHA1 -X '$commitTime=$lastCommitTime'" . + strip -x dgraph-linux-amd64 + mkdir $TMP/linux + mv dgraph-linux-amd64 $TMP/linux/dgraph +popd + +pushd $basedir/ratel + xgo --targets=linux/amd64 -ldflags "-X $ratel_release=$release_version" . + strip -x ratel-linux-amd64 + mv ratel-linux-amd64 $TMP/linux/dgraph-ratel +popd + +createSum () { + os=$1 + echo "Creating checksum for $os" + pushd $TMP/$os + csum=$(shasum -a 256 dgraph | awk '{print $1}') + echo $csum /usr/local/bin/dgraph >> ../dgraph-checksum-$os-amd64.sha256 + csum=$(shasum -a 256 dgraph-ratel | awk '{print $1}') + echo $csum /usr/local/bin/dgraph-ratel >> ../dgraph-checksum-$os-amd64.sha256 + popd +} + +createSum darwin +createSum linux + +createTar () { + os=$1 + echo "Creating tar for $os" + pushd $TMP/$os + tar -zcvf ../dgraph-$os-amd64.tar.gz * + popd + rm -Rf $TMP/$os +} + +createTar windows +createTar darwin +createTar linux + +echo "Release $TAG is ready." +ls -alh $TMP