DEPLOY_DIR=$(cd "${MCP_REPO_ROOT_PATH}/mcp/scripts"; pwd)
DOCKER_DIR=$(cd "${MCP_REPO_ROOT_PATH}/docker"; pwd)
DOCKER_TAG=${1:-latest}
+DOCKER_PUSH=${2---push} # pass an empty second arg to disable push
+CACHE_INVALIDATE=${CACHE_INVALIDATE:-0}
+SALT_VERSION='stable 2017.7'
source "${DEPLOY_DIR}/globals.sh"
source "${DEPLOY_DIR}/lib.sh"
+source "${DEPLOY_DIR}/lib_jump_common.sh"
+
+[ ! "${TERM:-unknown}" = 'unknown' ] || export TERM=vt220
+[ "${CACHE_INVALIDATE}" = 0 ] || CACHE_INVALIDATE=$(date +%s)
+
+export LC_ALL=en_US.utf-8
+export LANG=en_US.utf-8
#
# END of variables to customize
# Set no restrictive umask so that Jenkins can remove any residuals
umask 0000
-# Clone git submodules and apply our patches
-make -C "${MCP_REPO_ROOT_PATH}/mcp/patches" deepclean patches-import
-
-pushd "${DOCKER_DIR}" > /dev/null
+pushd "${DEPLOY_DIR}" > /dev/null
# Install distro packages and pip-managed prerequisites
notify "[NOTE] Installing required build-time distro and pip pkgs" 2
jumpserver_pkg_install 'build'
-pip install pipenv --user
+PYTHON_BIN_PATH="$(python3 -m site --user-base)/bin"
+PATH="$PATH:$PYTHON_BIN_PATH"
+# Clone git submodules and apply our patches
+make -C "${MCP_REPO_ROOT_PATH}/mcp/patches" deepclean patches-import
+python3 -m pip install --upgrade pipenv --user
docker_install
-pipenv --two
-pipenv install
-pipenv shell \
- "invoke build saltmaster-reclass \
- --require 'salt salt-formulas reclass tini-saltmaster' \
+popd > /dev/null
+pushd "${DOCKER_DIR}" > /dev/null
+
+env PIPENV_HIDE_EMOJIS=1 VIRTUALENV_ALWAYS_COPY=1 python3 -m pipenv --three install
+env PIPENV_HIDE_EMOJIS=1 VIRTUALENV_ALWAYS_COPY=1 python3 -m pipenv install invoke
+# shellcheck disable=SC2086
+env PIPENV_HIDE_EMOJIS=1 python3 -m pipenv run \
+ invoke build saltmaster-reclass \
+ --require 'salt salt-formulas opnfv reclass tini-saltmaster' \
--dist=ubuntu \
- --dist-rel=xenial \
+ --dist-rel=bionic \
--formula-rev=nightly \
- --opnfv-tag='${DOCKER_TAG}' \
- --salt='stable 2017.7'; \
- exit"
+ --opnfv-tag="${DOCKER_TAG}" \
+ --salt="${SALT_VERSION}" \
+ --build-arg-extra " \
+ CACHE_INVALIDATE=\"${CACHE_INVALIDATE}\"" \
+ ${DOCKER_PUSH}
+
+env PIPENV_HIDE_EMOJIS=1 python3 -m pipenv run \
+ invoke build saltminion-maas \
+ --require 'maas' \
+ --dist=ubuntu \
+ --dist-rel=bionic \
+ --opnfv-tag="${DOCKER_TAG}" \
+ --salt="${SALT_VERSION}" \
+ --build-arg-extra " \
+ CACHE_INVALIDATE=\"${CACHE_INVALIDATE}\"" \
+ ${DOCKER_PUSH}
popd > /dev/null