diff options
Diffstat (limited to 'node/build')
-rwxr-xr-x | node/build | 83 |
1 files changed, 53 insertions, 30 deletions
@@ -12,6 +12,9 @@ # $2 = build CONFIG, base64-encoded # +BUILD_SCRIPT_ROOT=$(readlink -f "$(dirname "${0}")/../build-scripts") + +source "${BUILD_SCRIPT_ROOT}"/helpers REPO_TOOL_URL="https://android.git.linaro.org/gitweb?p=tools/repo.git;a=blob_plain;f=repo;hb=refs/heads/stable" # Dump system release to build log @@ -35,17 +38,19 @@ function update-repo-tool () { mv /tmp/repo /usr/local/bin/repo } -update-repo-tool +if is_on_ec2; then + update-repo-tool +fi + +mkdir -p $(get_build_config)/build-tools -BUILD_SCRIPT_ROOT=$(readlink -f "$(dirname "${0}")/../build-scripts") -mkdir -p /var/run/build-tools if ! $BUILD_SCRIPT_ROOT/../node/prepare_build_config.py --base64 "$2"; then echo "Early exit due to build environment validation failure" exit 1 fi -# At this point, safely sourceable build config is in /var/run/build-tools/build-config -cat /var/run/build-tools/build-config -source /var/run/build-tools/build-config +# At this point, safely sourceable build config is in /tmp/build-tools/build-config +cat $(get_build_config)/build-tools/build-config +source $(get_build_config)/build-tools/build-config if [ -n "$BUILD_CONFIG_REPO" ]; then echo "Fetching build config indirectly from git" @@ -58,7 +63,7 @@ if [ -n "$BUILD_CONFIG_REPO" ]; then git checkout "$BUILD_CONFIG_BRANCH" $BUILD_SCRIPT_ROOT/../node/prepare_build_config.py "$(cat "$BUILD_CONFIG_FILENAME")" cd $save_dir - source /var/run/build-tools/build-config + source $(get_build_config)/build-tools/build-config fi @@ -68,41 +73,59 @@ mount | grep -E "^tmpfs on .+workspace/" | awk ' {print $3}' | xargs --no-run-if umount build/out/target || true umount build/out || true umount build || true -rm -rf build -mkdir build -ramdisk_size=$(get_ramdisk_size $2) +if is_on_ec2; then + rm -rf build +fi +mkdir -p build + +if is_on_ec2; then + ramdisk_size=$(get_ramdisk_size $2) -if [ -z "$ramdisk_size" ]; then - ramdisk_size=0 + if [ -z "$ramdisk_size" ]; then + ramdisk_size=0 + fi fi # Put build/* on a ramdisk to speed up build -if [ -z "$ramdisk_size" -o "$ramdisk_size" != "0" ]; then - mem_total=`cat /proc/meminfo | grep MemTotal | sed -s 's/[^0-9]*\([0-9]*\) kB/\1/'` - if [ "$mem_total" -gt 15680064 ]; then - ramdisk_size=${ramdisk_size:-11750M} - echo "Using $ramdisk_size tmpfs for build" - mount -t tmpfs -o size=$ramdisk_size tmpfs build - elif [ "$mem_total" -gt 12485760 ]; then - # XXX mounting build/out/target on a tmpfs is probably a bit android specific... - ramdisk_size=${ramdisk_size:-11G} - echo "Using $ramdisk_size tmpfs for build/out/target" - mkdir -p build/out/target - mount -t tmpfs -o size=$ramdisk_size tmpfs build/out/target - else - mkdir build/out +if is_on_ec2; then + if [ -z "$ramdisk_size" -o "$ramdisk_size" != "0" ]; then + mem_total=`cat /proc/meminfo | grep MemTotal | sed -s 's/[^0-9]*\([0-9]*\) kB/\1/'` + if [ "$mem_total" -gt 15680064 ]; then + ramdisk_size=${ramdisk_size:-11750M} + echo "Using $ramdisk_size tmpfs for build" + mount -t tmpfs -o size=$ramdisk_size tmpfs build + elif [ "$mem_total" -gt 12485760 ]; then + # XXX mounting build/out/target on a tmpfs is probably a bit android specific... + ramdisk_size=${ramdisk_size:-11G} + echo "Using $ramdisk_size tmpfs for build/out/target#" + mkdir -p build/out/target + mount -t tmpfs -o size=$ramdisk_size tmpfs build/out/target + else + mkdir build/out + fi fi +else + mkdir build/out +fi + +if is_on_ec2; then + chown :nogroup -R /mnt/jenkins + chown jenkins-build:nogroup -R build fi -chown :nogroup -R /mnt/jenkins -chown jenkins-build:nogroup -R build cd build -sudo -E -H -u jenkins-build bash -xes "${BUILD_SCRIPT_ROOT}" "$@" <<\EOF +if is_on_ec2; then + exec_cmd="sudo -E -H -u jenkins-build bash" +else + exec_cmd="bash" +fi +$exec_cmd -xes "${BUILD_SCRIPT_ROOT}" "$@" <<\EOF export BUILD_SCRIPT_ROOT="${1}" HOST="${2}" +source "${BUILD_SCRIPT_ROOT}"/helpers set -a -source /var/run/build-tools/build-config +source $(get_build_config)/build-tools/build-config set +a |