Files
rkt/build
T
Eugene Yakubovich 98e78d5f08 stage1: add stage1 gc entrypoint
Stage1 GC entrypoint is called as part of
"rkt gc", prior to recursively removing the
pod directory. This give the stage1 to do
any necessary cleanup.
2015-04-14 14:22:57 -07:00

79 lines
2.0 KiB
Python
Executable File

#!/bin/bash -eu
ORG_PATH="github.com/coreos"
REPO_PATH="${ORG_PATH}/rkt"
if [ ! -h gopath/src/${REPO_PATH} ]; then
mkdir -p gopath/src/${ORG_PATH}
ln -s ../../../.. gopath/src/${REPO_PATH} || exit 255
fi
export GOBIN=${PWD}/bin
export GOPATH=${PWD}/gopath
eval $(go env)
# set default stage1 usr style and validate potential override
RKT_STAGE1_USR_FROM="${RKT_STAGE1_USR_FROM:-coreos}"
case "${RKT_STAGE1_USR_FROM}" in
coreos|src)
;;
*)
echo "RKT_STAGE1_USR_FROM=${RKT_STAGE1_USR_FROM} unsupported"
exit 255
esac
export RKT_STAGE1_USR_FROM
echo "Building rkt (stage0)..."
go build -o ${GOBIN}/rkt \
${RKT_STAGE1_IMAGE:+-ldflags "-X main.defaultStage1Image '${RKT_STAGE1_IMAGE}'"} \
${REPO_PATH}/rkt
if [[ "$OSTYPE" == "linux-gnu" ]]; then
echo "Building network plugins..."
for d in networking/net/* networking/ipam/*; do
if [ -d $d ]; then
plugin=$(basename $d)
echo " " $plugin
go install ${REPO_PATH}/$d
fi
done
echo "Building actool..."
go build -o ${GOBIN}/actool github.com/coreos/rkt/Godeps/_workspace/src/github.com/appc/spec/actool
export ACTOOL=${GOBIN}/actool
echo "Building init (stage1)..."
go install ${REPO_PATH}/stage1/init
echo "Building gc (stage1)..."
go install ${REPO_PATH}/stage1/gc
# symlink plugin binaries into stage1 rootfs
mkdir -p stage1/rootfs/net-plugins/bin
# make sure the bin dir doesn't have old links
rm -f stage1/rootfs/net-plugins/bin/*
for d in networking/net/* networking/ipam/*; do
if [ -d $d ]; then
plugin=$(basename $d)
ln -sf ${GOBIN}/$plugin stage1/rootfs/net-plugins/bin
fi
done
# symlink init into stage1 rootfs
mkdir -p stage1/rootfs/init/bin
ln -sf ${GOBIN}/init stage1/rootfs/init/bin
# symlink gc into stage1 rootfs
mkdir -p stage1/rootfs/gc/bin
ln -sf ${GOBIN}/gc stage1/rootfs/gc/bin
JOBS=1
which lscpu >&/dev/null && JOBS=$(lscpu --parse=CPU | grep -c ^[^#])
echo "Building rootfs (stage1) using ${JOBS} CPUs..."
make -C stage1/rootfs -j ${JOBS}
fi
echo "Building functional tests..."
(cd tests && ./build)