1
0
mirror of synced 2025-12-20 10:32:35 -05:00
Files
airbyte/tools/internal/compare_versions.sh
Serhii Lazebnyi 97ba93ce4c 🎉 Compare versions tool (#24421)
* Add compare version tool

* Delete empty line

* Updated script to sync with state and add doc to README.md

* Add STATE to filter and move pull during run
2023-03-28 00:26:41 +02:00

50 lines
1.3 KiB
Bash

#!/usr/bin/env bash
# Read input params
read -r -p 'Enter connector name: ' connector
read -r -p 'Enter first connector version: ' version_1
read -r -p 'Enter second connector version: ' version_2
use_state(){
failed=false
for i in $(seq 1 3)
do read -n 1 -r -s -p "Start sync with state (y/n)?" choice
case "$choice" in
y|Y ) failed=false ; return 1 ;;
n|N ) failed=false ; return 0 ;;
* ) printf "\n";;
esac
failed=true
done
if "$failed"; then
echo "Process finished with exit code 1"
exit 1
fi
}
use_state
if [ "$?" -eq 1 ]; then
state_status="with"
state="/config_files/state.json"
else
state_status="without"
state=""
fi
printf "\nStarting comparing connector %s version %s with version %s %s state:\n" "$connector" "$version_1" "$version_2" "$state_status"
run_docker_image()
{
docker run --pull=missing --rm -v $(pwd)/config_files:/config_files airbyte/"$connector":"$1" read --config /config_files/secrets/config.json --catalog /config_files/configured_catalog.json --state "$state"
}
result=$( diff <(run_docker_image "$version_1") <(run_docker_image "$version_2") | grep -E 'RECORD|STATE' | sed '/\"emitted_at\"/,/}/ d')
if [ -n "$result" ]; then
printf "%s\n" "$result"
printf "Records output not equal."
else
printf "Records output equal."
fi