summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuli Silvius <s.silvius@partner.samsung.com>2019-04-16 15:41:26 +0300
committerSamuli Silvius <s.silvius@partner.samsung.com>2019-04-16 16:09:31 +0300
commitcceed25e6c773c18e479e246ddeadebc82870f70 (patch)
tree1bf89b32d371f8c5557859c4a9a1a1161072e921
parent8aee0eede3cff78304000ac64768b224aad32045 (diff)
Molecule test run wrappers against CI
Add ci-molecule.sh script to work as an interface towards CI pipe for running Molecule tests. Issue-ID: OOM-1749 Change-Id: Ib6e74d9b03b569a172a606f4db41b707602bf279 Signed-off-by: Samuli Silvius <s.silvius@partner.samsung.com>
-rwxr-xr-xansible/test/bin/ci-molecule.sh52
-rwxr-xr-xansible/test/bin/install-molecule.sh45
2 files changed, 97 insertions, 0 deletions
diff --git a/ansible/test/bin/ci-molecule.sh b/ansible/test/bin/ci-molecule.sh
new file mode 100755
index 00000000..9fbaad51
--- /dev/null
+++ b/ansible/test/bin/ci-molecule.sh
@@ -0,0 +1,52 @@
+#! /usr/bin/env bash
+
+# COPYRIGHT NOTICE STARTS HERE
+
+# Copyright 2019 © Samsung Electronics Co., Ltd.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# COPYRIGHT NOTICE ENDS HERE
+
+#
+# This is a main wrapper script to run Molecule tests
+# Main usage is for the CI usage to keep interface stable and the way to call
+# Molecule can be adjusted in this script independently.
+#
+
+SCRIPT_DIR=$(dirname "${0}")
+LOCAL_PATH=$(readlink -f "$SCRIPT_DIR")
+
+ROLE_PATH=$1
+MOLECULE_CONTAINER=${MOLECULE_CONTAINER:-true}
+
+echo "Build all pre-build images"
+${LOCAL_PATH}/../images/docker/build-all.sh
+
+# Use Molecule container
+if [ "${MOLECULE_CONTAINER}" == "true" ]; then
+ echo "Build Molecule-dev docker container"
+ ${LOCAL_PATH}/../molecule-docker/build.sh
+ MOLECULE_BINARY=${LOCAL_PATH}/../bin/molecule.sh
+
+else # Install Molecule natively in the target platform
+ echo "Install Molecule with virtualenv"
+ source ${LOCAL_PATH}/../bin/install-molecule.sh
+ MOLECULE_BINARY=molecule
+fi
+
+${MOLECULE_BINARY} --version
+
+cd ${ROLE_PATH}
+${MOLECULE_BINARY} test --all
+cd -
diff --git a/ansible/test/bin/install-molecule.sh b/ansible/test/bin/install-molecule.sh
new file mode 100755
index 00000000..f5350df6
--- /dev/null
+++ b/ansible/test/bin/install-molecule.sh
@@ -0,0 +1,45 @@
+#! /usr/bin/env bash
+
+# COPYRIGHT NOTICE STARTS HERE
+
+# Copyright 2019 © Samsung Electronics Co., Ltd.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# COPYRIGHT NOTICE ENDS HERE
+
+#
+# Pre-requisites:
+# - python 3
+# - pip
+# - dev tools (libssl-dev in particular)
+# - venv
+#
+# Example install in Ubuntu 18.04
+# sudo apt install -y python3-pip
+# sudo apt install build-essential libssl-dev libffi-dev python3-dev
+# sudo apt install -y python3-venv
+#
+VENV_PATH=${VENV_PATH:-~/molecule_venv}
+
+# Create virtual env
+python3 -m venv ${VENV_PATH}
+
+# Activate virtual env
+source ${VENV_PATH}/bin/activate
+
+# Install Molecule
+if [ ! -z ${VIRTUAL_ENV} ]; then
+ echo "Activated virtual env in ${VIRTUAL_ENV}"
+ pip install molecule==2.20 ansible==2.7.8 docker pyopenssl
+fi