diff --git a/build b/build index 2acc8f27..c6d60ff8 100755 --- a/build +++ b/build @@ -1,5 +1,5 @@ #!/usr/bin/env bash -set -e +set -xe ORG_PATH="github.com/containernetworking" REPO_PATH="${ORG_PATH}/cni" @@ -14,18 +14,17 @@ export GOBIN=${PWD}/bin export GOPATH=${PWD}/gopath echo "Building API" -go build ${REPO_PATH}/libcni +go build "$@" ${REPO_PATH}/libcni echo "Building reference CLI" -go install ${REPO_PATH}/cnitool +go install "$@" ${REPO_PATH}/cnitool echo "Building plugins" - PLUGINS="plugins/meta/* plugins/main/* plugins/ipam/*" for d in $PLUGINS; do if [ -d $d ]; then plugin=$(basename $d) echo " " $plugin - go install ${REPO_PATH}/$d + go install "$@" ${REPO_PATH}/$d fi done diff --git a/scripts/release-with-rkt.sh b/scripts/release-with-rkt.sh new file mode 100755 index 00000000..67702546 --- /dev/null +++ b/scripts/release-with-rkt.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash +set -xe + +SRC_DIR="${SRC_DIR:-$PWD}" + +FEDORA_INSTALL="dnf install -y golang tar xz bzip2 gzip sudo iproute wget" +FEDORA_IMAGE="docker://fedora:23" +ACBUILD_URL="https://github.com/appc/acbuild/releases/download/v0.2.2/acbuild.tar.gz" +ACBUILD="acbuild --debug" +BUILDFLAGS="-a --ldflags '-extldflags \"-static\"'" + +TAG=$(git describe --exact-match --abbrev=0) || TAG=$(git describe) +RELEASE_DIR=release-${TAG} +OUTPUT_DIR=bin + +rm -Rf ${SRC_DIR}/${RELEASE_DIR} +mkdir -p ${SRC_DIR}/${RELEASE_DIR} + +sudo -E rkt run \ + --volume rslvconf,kind=host,source=/etc/resolv.conf \ + --mount volume=rslvconf,target=/etc/resolv.conf \ + --volume src-dir,kind=host,source=$SRC_DIR \ + --mount volume=src-dir,target=/opt/src \ + --interactive \ + --insecure-options=image \ + ${FEDORA_IMAGE} \ + --exec /bin/bash \ + -- -xe -c "\ + ${FEDORA_INSTALL}; cd /opt/src; umask 0022; CGO_ENABLED=0 ./build ${BUILDFLAGS}; \ + for format in txz tbz2 tgz; do \ + FILENAME=cni-${TAG}.\$format; \ + FILEPATH=${RELEASE_DIR}/\$FILENAME; \ + tar -C ${OUTPUT_DIR} --owner=0 --group=0 -caf \$FILEPATH .; \ + done; \ + wget -O - ${ACBUILD_URL} | tar -C /usr/bin -xzvf -; \ + ${ACBUILD} begin; \ + ${ACBUILD} set-name coreos.com/cni; \ + ${ACBUILD} label add version ${TAG}; \ + ${ACBUILD} copy --to-dir ${OUTPUT_DIR} /opt/cni/; \ + ${ACBUILD} write ${RELEASE_DIR}/cni-${TAG}.aci; \ + ${ACBUILD} end; \ + pushd ${RELEASE_DIR}; for f in \$(ls); do sha1sum \$f > \$f.sha1; done; popd; \ + chown -R ${UID} ${OUTPUT_DIR} ${RELEASE_DIR}; \ + :"