0
0
mirror of https://github.com/mongodb/mongo.git synced 2024-11-21 12:39:08 +01:00
mongodb/evergreen/check_idl_compat.sh

38 lines
1.5 KiB
Bash
Executable File

DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)"
. "$DIR/prelude.sh"
cd src
set -o errexit
set -o verbose
activate_venv
$python buildscripts/idl/check_stable_api_commands_have_idl_definitions.py -v --install-dir dist-test/bin --include src --include src/mongo/db/modules/enterprise/src 1
$python buildscripts/idl/checkout_idl_files_from_past_releases.py -v idls
function run_idl_check_compatibility {
dir=$1
output=$(
python buildscripts/idl/idl_check_compatibility.py -v \
--old-include "$dir/src" \
--old-include "$dir/src/mongo/db/modules/enterprise/src" \
--new-include src \
--new-include src/mongo/db/modules/enterprise/src \
"$dir/src" src
)
exit_code=$?
echo "Performing idl check compatibility with release: $dir:"
echo "$output"
if [ $exit_code -ne 0 ]; then
exit 255
fi
}
export -f run_idl_check_compatibility
find idls -maxdepth 1 -mindepth 1 -type d | xargs -n 1 -P 0 -I % bash -c 'run_idl_check_compatibility "$@"' _ %
# Run the idl compatibility checker script with the current src directory as both the "old" and
# "new" versions. This is so that we can check that commands that were newly added since the last
# release adhere to compatibility requirements.
echo "Performing idl check compatibility for newly added commands since the last release:"
$python buildscripts/idl/idl_check_compatibility.py -v --old-include src --old-include src/mongo/db/modules/enterprise/src --new-include src --new-include src/mongo/db/modules/enterprise/src src src