diff options
author | Samuli Silvius <s.silvius@partner.samsung.com> | 2019-04-16 15:41:26 +0300 |
---|---|---|
committer | Samuli Silvius <s.silvius@partner.samsung.com> | 2019-04-16 16:09:31 +0300 |
commit | cceed25e6c773c18e479e246ddeadebc82870f70 (patch) | |
tree | 1bf89b32d371f8c5557859c4a9a1a1161072e921 | |
parent | 8aee0eede3cff78304000ac64768b224aad32045 (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-x | ansible/test/bin/ci-molecule.sh | 52 | ||||
-rwxr-xr-x | ansible/test/bin/install-molecule.sh | 45 |
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 |