Bug 1858: Adding APT proxy
[osm/devops.git] / tools / local-build.sh
index 0898518..9c40272 100755 (executable)
@@ -16,6 +16,7 @@
 # limitations under the License.
 #######################################################################################
 
+APT_PROXY=""
 DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
 HTTPDDIR="$( cd "${HOME}/snap/qhttp/common" &> /dev/null && pwd )"
 HTTPPORT=8000
@@ -30,6 +31,7 @@ function check_arguments(){
     while [ $# -gt 0 ] ; do
         case $1 in
             --debug) set -x ;;
+            --apt-proxy) APT_PROXY="$2" && shift ;;
             --help | -h) show_help && exit 0 ;;
             --httpddir) HTTPDIR="$2" && shift;;
             --install-local-registry) 'install_local_registry' ;;
@@ -67,8 +69,9 @@ same process as Jenkins.
 
 OPTIONS:
   --help                        display this help message
+  --apt-proxy                   provide an apt proxy to docker build steps
   --debug                       enable set -x for this script
-  --install-local-registry     install and enable Microk8s local registry on port 32000
+  --install-local-registry      install and enable Microk8s local registry on port 32000
   --install-microstack          install Microstack and configure to run robot tests
   --install-qhttpd              install QHTTPD as an HTTP server on port ${HTTPPORT}
   --kubecfg                     path to kubecfg.yaml (uses Charmed OSM by default)
@@ -171,7 +174,12 @@ function stage_2() {
         print_section "Building ${MODULE}"
         cd ${MODULE}
         find . -name '*.deb' -exec rm -v {} \;
-        docker build ${NO_CACHE} -t ${MODULE,,}-stage2 .
+
+        BUILD_ARGS=""
+        if [ ! -z $APT_PROXY ] ; then
+            BUILD_ARGS="${BUILD_ARGS}--build-arg APT_PROXY=${APT_PROXY} "
+        fi
+        docker build ${NO_CACHE} ${BUILD_ARGS} -t ${MODULE,,}-stage2 .
 
         STAGES="stage-build.sh"
         if [ ! -z $TESTS ] ; then
@@ -217,6 +225,10 @@ function stage_3() {
     print_section "Performing Stage 3"
     MODULES=$(_find_module_dockerfile $1)
     BUILD_ARGS=""
+    if [ ! -z $APT_PROXY ] ; then
+        BUILD_ARGS="${BUILD_ARGS}--build-arg APT_PROXY=${APT_PROXY} "
+    fi
+
     HOSTIP=$(ip -4 addr show docker0 | grep -Po 'inet \K[\d.]+')
     for file in ~/snap/qhttp/common/*.deb ; do
         file=`basename ${file}`