Fix CI build fail due to permission(for pipiline job) (#469)
author이춘석/동작제어Lab(SR)/Senior Engineer/삼성전자 <chunseok.lee@samsung.com>
Fri, 6 Apr 2018 07:10:14 +0000 (16:10 +0900)
committer서상민/동작제어Lab(SR)/Senior Engineer/삼성전자 <sangmin7.seo@samsung.com>
Fri, 6 Apr 2018 07:10:14 +0000 (16:10 +0900)
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
docker/docker_build_cross_arm_ubuntu_without_aclbuild.sh

index 20c3582..ff155fe 100755 (executable)
@@ -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
index 4f9e889..e8b85e7 100755 (executable)
@@ -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