set -e
function run {
echo "----------------------------------------------------------------------"
echo "Running $@"
"$@"
echo
}
version_build_script=`grep "const VERSION" tensorflow-sys/build.rs | sed 's|.*"\([^"]*\)";|\1|g'`
version_run_valgrind=`grep "tensorflow_version=" run-valgrind | sed "s|.*=\(.*\)|\1|g"`
version_requirements=`grep "tensorflow\s*=" .github/workflows/requirements.txt | sed "s|.*== \(.*\)|\1|g"`
if [[ "${version_build_script}" != "${version_run_valgrind}" || \
"${version_build_script}" != "${version_requirements}" ]]; then
echo "ERROR: Tensorflow version specified in build script does not match the one in the"
echo " valgrind run script."
echo " tensorflow-sys/build.rs: ${version_build_script}"
echo " run-valgrind: ${version_run_valgrind}"
echo " ./github/workflows/requirements.txt: ${version_requirements}"
exit 1
fi
version_tensorflow_crate=`grep "^version =" Cargo.toml | sed 's|.*= "\(.*\)"|\1|g'`
version_tensorflow_readme=`sed -En 's|tensorflow *= *"([^"]*)"|\1|p' < README.md`
version_tensorflow_readme2=`sed -En 's|tensorflow *= *\{ *version *= *"([^"]*)".*$|\1|p' < README.md`
if [[ "${version_tensorflow_crate}" != "${version_tensorflow_readme}" || \
"${version_tensorflow_crate}" != "${version_tensorflow_readme2}" ]]; then
echo "ERROR: tensorflow crate version does not match the ones in README.md."
echo " Cargo.toml: ${version_tensorflow_crate}"
echo " README.md: ${version_tensorflow_readme}"
echo " README.md: ${version_tensorflow_readme2}"
exit 1
fi
version_tensorflow_sys_crate=`grep "^version =" tensorflow-sys/Cargo.toml | sed 's|.*= "\(.*\)"|\1|g'`
version_tensorflow_sys_readme=`sed -En 's|tensorflow-sys *= *\{ *version *= *"([^"]*)".*$|\1|p' < tensorflow-sys/README.md`
if [[ "${version_tensorflow_sys_crate}" != "${version_tensorflow_sys_readme}" ]]; then
echo "ERROR: tensorflow-sys crate version does not match the one in README.md."
echo " Cargo.toml: ${version_tensorflow_sys_crate}"
echo " README.md: ${version_tensorflow_sys_readme}"
exit 1
fi
run python3 examples/mobilenetv3/create_model.py
run cargo fmt --all -- --check
run cargo test -vv -j 2
run cargo test -vv -j 2 --features eager
run cargo test -vv -j 2 --features tensorflow_unstable
run cargo test -vv -j 2 --features ndarray
run cargo run --example regression
run cargo run --example xor
run cargo run --features tensorflow_unstable --example expressions
run cargo run --features eager --example mobilenetv3
run cargo doc -vv --features experimental,tensorflow_unstable,ndarray,eager
run cargo doc -vv --features experimental,tensorflow_unstable,ndarray,eager,private-docs-rs
(cd tensorflow-sys && run cargo run --example multiplication)
(cd tensorflow-sys && run cargo run --example tf_version)
(cd tensorflow-sys && run cargo doc -vv)
run cargo clippy
(cd tensorflow-sys && run cargo clippy)
(cd tensorflow-op-codegen && run cargo clippy)
(cd tensorflow-proto-codegen && run cargo clippy)
(cd tensorflow-internal-macros && run cargo clippy)
for file in $(find . -name target -prune -o -name '*.rs' -print); do
bad_deprecations="$(rustfmt --emit stdout --config max_width=1000 "$file" | grep '#\[deprecated' | grep -E -v '([^"\\]|\\.|"([^"\\]|\\.)*")*since' || true)"
if [[ "${bad_deprecations}" != "" ]]; then
echo "ERROR: #[deprecated] attribute(s) found with no 'since' key in $file:"
echo "${bad_deprecations}"
exit 1
fi
bad_deprecations="$(rustfmt --emit stdout --config max_width=1000 "$file" | grep '#\[deprecated' | grep -E -v '([^"\\]|\\.|"([^"\\]|\\.)*")*note' || true)"
if [[ "${bad_deprecations}" != "" ]]; then
echo "ERROR: #[deprecated] attribute(s) found with no 'note' key in $file:"
echo "${bad_deprecations}"
exit 1
fi
done