ansible/test/utils/shippable/shippable.sh
Matt Clay 7b3f0b8870 Add support for on-demand coverage on Shippable.
Triggered by setting the COVERAGE environment var to a non-empty value.
Alternatively the string `ci_coverage` can be added to a commit message.
2017-05-12 14:55:48 +08:00

50 lines
1.2 KiB
Bash
Executable file

#!/bin/bash -eux
set -o pipefail
declare -a args
IFS='/:' read -ra args <<< "${TEST}"
script="${args[0]}"
docker images ansible/ansible
docker ps
if [ -d /home/shippable/cache/ ]; then
ls -la /home/shippable/cache/
fi
which python
python -V
which pip
pip --version
pip list --disable-pip-version-check
export PATH="test/runner:${PATH}"
export PYTHONIOENCODING='utf-8'
export COVERAGE="${COVERAGE:-}"
# run integration coverage if 'ci_coverage' is in the commit message or the COVERAGE var is non-empty
if [[ "${COMMIT_MESSAGE}" =~ ci_coverage ]] || [ -n "${COVERAGE}" ]; then
export COVERAGE="--coverage"
fi
# remove empty core/extras module directories from PRs created prior to the repo-merge
find lib/ansible/modules -type d -empty -print -delete
function cleanup
{
if find test/results/coverage/ -mindepth 1 -name '.*' -prune -o -print -quit | grep -q .; then
ansible-test coverage xml --color -v --requirements
cp -a test/results/reports/coverage.xml shippable/codecoverage/coverage.xml
fi
rmdir shippable/testresults/
cp -a test/results/junit/ shippable/testresults/
cp -aT test/results/bot/ shippable/testresults/
}
trap cleanup EXIT
"test/utils/shippable/${script}.sh"