mirror of
https://github.com/freeipa/ansible-freeipa.git
synced 2026-03-26 21:33:05 +00:00
This patch forces the addition of a remote repository pointing to the main ansible-freeipa repo, and fetch its contents before confaring the modified files. The remote repository is removed after the modified file list is generated.
48 lines
1.5 KiB
Bash
48 lines
1.5 KiB
Bash
#!/bin/bash -eu
|
|
# This file shoud be source'd (. set_test_modules) rather than executed.
|
|
|
|
#
|
|
# Set "BASE_BRANCH" to a different branch to compare.
|
|
#
|
|
|
|
RED="\033[31;1m"
|
|
RST="\033[0m"
|
|
|
|
die() {
|
|
echo -e "${RED}${*}${RST}" >&2
|
|
}
|
|
|
|
TOPDIR="$(dirname "${BASH_SOURCE[0]}")/.."
|
|
|
|
pushd "${TOPDIR}" >/dev/null 2>&1 || die "Failed to change directory."
|
|
|
|
files_list=$(mktemp)
|
|
|
|
remote="$(basename $(mktemp -u remote_XXXXXX))"
|
|
git remote add ${remote} https://github.com/freeipa/ansible-freeipa
|
|
git fetch --prune --no-tags --quiet ${remote}
|
|
git diff "${remote}/master" --name-only > "${files_list}"
|
|
git remote remove ${remote}
|
|
|
|
# Get all modules that should have tests executed
|
|
enabled_modules="$(python utils/get_test_modules.py $(cat "${files_list}"))"
|
|
[ -z "${enabled_modules}" ] && enabled_modules="None"
|
|
|
|
# Get individual tests that should be executed
|
|
mapfile -t tests < <(sed -n "s#.*/\(test_[^/]*\).yml#\1#p" "${files_list}" | tr -d " ")
|
|
[ ${#tests[@]} -gt 0 ] && enabled_tests=$(IFS=, ; echo "${tests[*]}")
|
|
[ -z "${enabled_tests}" ] && enabled_tests="None"
|
|
|
|
[ -n "${enabled_tests}" ] && IPA_ENABLED_TESTS="${enabled_tests},${IPA_ENABLED_TESTS}"
|
|
[ -n "${enabled_modules}" ] && IPA_ENABLED_MODULES="${enabled_modules},${IPA_ENABLED_MODULES}"
|
|
|
|
rm -f "${files_list}"
|
|
|
|
export IPA_ENABLED_MODULES
|
|
export IPA_ENABLED_TESTS
|
|
|
|
echo "IPA_ENABLED_MODULES = [${IPA_ENABLED_MODULES}]"
|
|
echo "IPA_ENABLED_TESTS = [${IPA_ENABLED_TESTS}]"
|
|
|
|
popd >/dev/null 2>&1 || die "Failed to change back to original directory."
|