Implement of build script in Escalator
[escalator.git] / ci / build_rpm / build_rpms.sh
diff --git a/ci/build_rpm/build_rpms.sh b/ci/build_rpm/build_rpms.sh
new file mode 100755 (executable)
index 0000000..81443ca
--- /dev/null
@@ -0,0 +1,58 @@
+#!/bin/bash\r
+\r
+set -eux\r
+ESCALATORDIR=$1\r
+OPNFV_ARTIFACT_VERSION=$2\r
+\r
+function build_rpm_pkg {\r
+        # Cleanup prev build resutls\r
+        rm -rf $ESCALATORDIR/build_output\r
+        mkdir -p $ESCALATORDIR/build_output\r
+\r
+        sudo docker build -t escalator_rpm .\r
+        sudo docker run --rm -v $ESCALATORDIR:/opt/escalator -v $CACHE_DIRECTORY:/home/cache -t  escalator_rpm \\r
+                      /opt/escalator/ci/build_rpm/build_rpms_docker.sh $OPNFV_ARTIFACT_VERSION\r
+\r
+       # Here to collect build result from $ESCALATORDIR/build_output\r
+}\r
+\r
+function cleanup_container {\r
+        containers_to_kill=$(sudo docker ps --filter "label=escalator_image_version" \\r
+                --format "{{.Names}}" -a)\r
+\r
+        if [[ -z "$containers_to_kill" ]]; then\r
+                echo "No containers to cleanup."\r
+        else\r
+                volumes_to_remove=$(sudo docker inspect -f \\r
+                        '{{range .Mounts}} {{printf "%s\n" .Name }}{{end}}' \\r
+                        ${containers_to_kill} | egrep -v '(^\s*$)' | sort | uniq)\r
+                echo "Stopping containers... $containers_to_kill"\r
+                sudo docker stop -t 2 ${containers_to_kill} >/dev/null 2>&1\r
+\r
+                echo "Removing containers... $containers_to_kill"\r
+                sudo docker rm -v -f ${containers_to_kill} >/dev/null 2>&1\r
+\r
+                if [[ -z "$volumes_to_remove" ]]; then\r
+                        echo "No volumes to cleanup."\r
+                else\r
+                        echo "Removing volumes... $volumes_to_remove"\r
+                        sudo docker volume rm ${volumes_to_remove} >/dev/null 2>&1\r
+                fi\r
+        fi\r
+}\r
+\r
+function cleanup_docker_image {\r
+        images_to_delete=$(sudo docker images -a --filter "label=escalator_image_version" \\r
+                --format "{{.ID}}")\r
+\r
+        echo "Removing images... $images_to_delete"\r
+        if [[ -z "$images_to_delete" ]]; then\r
+                echo "No images to cleanup"\r
+        else\r
+                sudo docker rmi -f ${images_to_delete} >/dev/null 2>&1\r
+        fi\r
+}\r
+\r
+cleanup_container\r
+cleanup_docker_image\r
+build_rpm_pkg\r