From fe4f9f01fb9b3099ac4ceed47f3c48ce5e77aee1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=EC=9D=B4=EC=B6=98=EC=84=9D/=EB=8F=99=EC=9E=91=EC=A0=9C?= =?utf8?q?=EC=96=B4Lab=28SR=29/Senior=20Engineer/=EC=82=BC=EC=84=B1?= =?utf8?q?=EC=A0=84=EC=9E=90?= Date: Fri, 6 Apr 2018 16:10:14 +0900 Subject: [PATCH] Fix CI build fail due to permission(for pipiline job) (#469) On pipeline job, workspace clean is not a default option. Thus we have to clean up WS manually on pipeline. Without this patch, cleanup is not allowed due to permission error. It is based on c93d050642e196b0d667a9dee34117aa330f5fbc. 1. fix permission error on CI 2. supress wget output with `-nv` --- docker/docker_build_cross_arm_ubuntu.sh | 14 ++++++++++++++ docker/docker_build_cross_arm_ubuntu_without_aclbuild.sh | 15 +++++++++++++-- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/docker/docker_build_cross_arm_ubuntu.sh b/docker/docker_build_cross_arm_ubuntu.sh index 20c3582..ff155fe 100755 --- a/docker/docker_build_cross_arm_ubuntu.sh +++ b/docker/docker_build_cross_arm_ubuntu.sh @@ -26,3 +26,17 @@ docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME CMD="export TARGET_ARCH=armv7l && export CROSS_BUILD=1 && make acl && make && make install" docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME sh -c "$CMD" +BUILD_RESULT=$? + +# Newly created files during above docker run can have different ownership. +# This may cause some problems, for example, some jenkins slaves or developers +# can't remove built files due to lack of permission. +# To address this issue, let's change owner of all files +# in NNFW to owner of NNFW. +NNFW_OWNER_UID=$(stat -c "%u" $HOST_HOME) +NNFW_OWNER_GID=$(stat -c "%g" $HOST_HOME) + +CMD="chown -R $NNFW_OWNER_UID:$NNFW_OWNER_GID $DOCKER_HOME" +docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME $CMD + +exit $BUILD_RESULT diff --git a/docker/docker_build_cross_arm_ubuntu_without_aclbuild.sh b/docker/docker_build_cross_arm_ubuntu_without_aclbuild.sh index 4f9e889..e8b85e7 100755 --- a/docker/docker_build_cross_arm_ubuntu_without_aclbuild.sh +++ b/docker/docker_build_cross_arm_ubuntu_without_aclbuild.sh @@ -28,11 +28,11 @@ TMP_DIR=$HOST_HOME/tmp mkdir -p $TMP_DIR/libarmcl # prepare armcl library -wget http://npuarchive.mooo.com/archive/nnfw/libarmcl/libarmcl.tar.gz -O $TMP_DIR/libarmcl.tar.gz +wget http://npuarchive.mooo.com/archive/nnfw/libarmcl/libarmcl.tar.gz -O $TMP_DIR/libarmcl.tar.gz -nv tar -zxvf $TMP_DIR/libarmcl.tar.gz -C $TMP_DIR/libarmcl # prepare rootfs -wget http://npuarchive.mooo.com/archive/nnfw/rootfs/rootfs_arm_ubuntu.tar.gz -O $TMP_DIR/rootfs.tar.gz +wget http://npuarchive.mooo.com/archive/nnfw/rootfs/rootfs_arm_ubuntu.tar.gz -O $TMP_DIR/rootfs.tar.gz -nv tar -zxf $TMP_DIR/rootfs.tar.gz -C $TMP_DIR DOCKER_VOLUMES+=" -v $TMP_DIR/arm:/opt/rootfs" @@ -47,5 +47,16 @@ CMD="make external_acl && make && make install && make build_test_suite" docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME sh -c "$CMD" BUILD_RESULT=$? +# Newly created files during above docker run can have different ownership. +# This may cause some problems, for example, some jenkins slaves or developers +# can't remove built files due to lack of permission. +# To address this issue, let's change owner of all files +# in NNFW to owner of NNFW. +NNFW_OWNER_UID=$(stat -c "%u" $HOST_HOME) +NNFw_OWNER_GID=$(stat -c "%g" $HOST_HOME) + +CMD="chown -R $NNFW_OWNER_UID:$NNFW_OWNER_GID $DOCKER_HOME" +docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME $CMD + rm -rf $TMP_DIR exit $BUILD_RESULT -- 2.7.4