mirror of
https://github.com/PyratLabs/ansible-role-k3s
synced 2024-11-09 15:03:31 +01:00
Added ansible version tests
This commit is contained in:
parent
23054c76f6
commit
55f1f09f3a
1 changed files with 64 additions and 0 deletions
64
test_versions.sh
Executable file
64
test_versions.sh
Executable file
|
@ -0,0 +1,64 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ANSIBLE_RELEASE_FEED="$(curl -Ssl https://api.github.com/repos/ansible/ansible/tags?per_page=50)"
|
||||
TMPDIR="$(mktemp -d /tmp/molecule.XXXXX)"
|
||||
|
||||
function ansible_releases {
|
||||
local RELEASE_LIST_ALL
|
||||
|
||||
RELEASE_LIST_ALL="$(echo "${ANSIBLE_RELEASE_FEED}" | grep -E "\"name\": \"v[0-9]+\.[0-9]+\.[0-9]+\"")"
|
||||
|
||||
for RELEASE in ${RELEASE_LIST_ALL} ; do
|
||||
echo "${RELEASE}" | grep -v "name" | sed -E 's/"v([0-9]+\.[0-9]+\.[0-9]+)",/\1/g' || true
|
||||
done
|
||||
}
|
||||
|
||||
function build_requirements {
|
||||
local TEST_REQUIREMENTS
|
||||
local REQUIREMENTS
|
||||
local ANSIBLE_VERSION
|
||||
|
||||
ANSIBLE_VERSION="${1:-true}"
|
||||
|
||||
if [ "${ANSIBLE_VERSION}" == "true" ] ; then
|
||||
echo "Something went wrong!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
TEST_REQUIREMENTS=$(<molecule/requirements.txt)
|
||||
REQUIREMENTS=$(echo "${TEST_REQUIREMENTS}" | grep -v "requirements.txt" || true)
|
||||
if [[ "${ANSIBLE_VERSION}" =~ "^v2\.10" ]] ; then
|
||||
echo -e "ansible==${ANSIBLE_VERSION}\nansible-base==${ANSIBLE_VERSION}\n${REQUIREMENTS}"
|
||||
else
|
||||
echo -e "ansible==${ANSIBLE_VERSION}\n${REQUIREMENTS}"
|
||||
fi
|
||||
}
|
||||
|
||||
function make_venv {
|
||||
local MOLECULE_RESULT
|
||||
|
||||
python3 -m venv "${TMPDIR}/${1:-ansible}"
|
||||
source "${TMPDIR}/${1:-ansible}/bin/activate"
|
||||
pip3 install -r "${TMPDIR}/version_requirements.txt" || true
|
||||
MOLECULE_RESULT=$(molecule test | grep -E "CRITICAL|fatal:" || echo ":heavy_check_mark:")
|
||||
if [ "${MOLECULE_RESULT}" != ":heavy_check_mark:" ] ; then
|
||||
MOLECULE_RESULT=":x:"
|
||||
fi
|
||||
deactivate
|
||||
|
||||
echo -n "${MOLECULE_RESULT}" | tee -a /tmp/molecule_tests.md
|
||||
}
|
||||
|
||||
function main {
|
||||
echo "| Version | Result |" | tee /tmp/molecule_tests.md
|
||||
echo "| --------- | ------------------ |" | tee -a /tmp/molecule_tests.md
|
||||
for TEST_ANSIBLE in $(ansible_releases) ; do
|
||||
echo -n "| ${TEST_ANSIBLE} | " | tee -a /tmp/molecule_tests.md
|
||||
build_requirements "${TEST_ANSIBLE}" > "${TMPDIR}/version_requirements.txt"
|
||||
make_venv "${TEST_ANSIBLE}"
|
||||
echo " |" | tee -a /tmp/molecule_tests.md
|
||||
done
|
||||
}
|
||||
|
||||
main
|
Loading…
Reference in a new issue