Skip to content

Commit

Permalink
Add script to fetch netplugin release or build (#275)
Browse files Browse the repository at this point in the history
* Add script to fetch netplugin release or build

Adding a script that can be used by the Makefile to either maintain
existing behavior by default (download an existing release), or by
adding environment variables, build netplugin based on a requested
branch.

Signed-off-by: Chris Plock <chrisplo@cisco.com>

* review feedback - PLEASE SQUASH MERGE
  • Loading branch information
chrisplo authored and dseevr committed Oct 24, 2017
1 parent 515c489 commit f06d901
Showing 1 changed file with 51 additions and 0 deletions.
51 changes: 51 additions & 0 deletions scripts/prepare_netplugin_tarball.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
#!/bin/bash

# Produces a tarball of netplugin binaries at $CONTIV_ARTIFACT_STAGING
# It either:
# * retrieves netplugin-$CONTIV_NETPLUGIN_VERSION.tar.bz2 from github
# releases
# or if $NETPLUGIN_BRANCH is set to an upstream branch name:
# * downloads the branch from fork owner $NETPLUGIN_OWNER and compiles
# it, naming it netplugin-<COMMIT_SHA>.tar.bz2

set -euxo pipefail

: ${CONTIV_NETPLUGIN_TARBALL_NAME} # check if defined

mkdir -p $CONTIV_ARTIFACT_STAGING

# check if installer is for a release version of netplugin
if [ -z "${NETPLUGIN_BRANCH:-}" ]; then
echo Downloading netplugin-${CONTIV_NETPLUGIN_VERSION}
# retrieve release vesion of netplugin
base_url=https://github.com/contiv/netplugin/releases/download
netplugin_bundle_name=netplugin-$CONTIV_NETPLUGIN_VERSION.tar.bz2
curl -sL ${base_url}/$CONTIV_NETPLUGIN_VERSION/$netplugin_bundle_name \
-o ${CONTIV_ARTIFACT_STAGING}/$netplugin_bundle_name
exit
fi

# build netplugin based on SHA

# tempdir for building and cleanup on exit
netplugin_tmp_dir="$(mktemp -d)"
trap 'rm -rf ${netplugin_tmp_dir}' EXIT

echo Cloning ${NETPLUGIN_OWNER}/netplugin branch ${NETPLUGIN_BRANCH}
# about 3x faster to pull the HEAD of a branch with no history
git clone --branch ${NETPLUGIN_BRANCH} --depth 1 \
https://github.com/${NETPLUGIN_OWNER}/netplugin.git \
${netplugin_tmp_dir}/netplugin

# run the build and extract the binaries
cd $netplugin_tmp_dir/netplugin
GIT_COMMIT=$(./scripts/getGitCommit.sh)
# gopath is set in the tar container, not used, but makefile requires it set
make GOPATH=${GOPATH:-.} BUILD_VERSION=${GIT_COMMIT} tar

# move the netplugin tarball to the staging directory for the installer
mv netplugin-${GIT_COMMIT}.tar.bz2 \
${CONTIV_ARTIFACT_STAGING}/
# create a link so other scripts can find the file without knowing the SHA
cd ${CONTIV_ARTIFACT_STAGING}
ln -sf netplugin-${GIT_COMMIT}.tar.bz2 $CONTIV_NETPLUGIN_TARBALL_NAME

0 comments on commit f06d901

Please # to comment.