onnxruntime/tools/ci_build/github/linux/create_package_inside_docker.sh
2018-11-19 16:48:22 -08:00

47 lines
1.6 KiB
Bash
Executable file

#!/bin/bash
#This script uses system provided eigen and protobuf, not the ones in onnxruntime repo.
export PATH=/usr/lib64/ccache:$PATH
set -e
SCRIPT_DIR="$( dirname "${BASH_SOURCE[0]}" )"
TOP_SRC_DIR=$(realpath $SCRIPT_DIR/../../../..)
echo $TOP_SRC_DIR
VERSION_NUMBER=$(cat $TOP_SRC_DIR/VERSION_NUMBER)
rpmdev-setuptree
tmp_build_dir=$(mktemp -d)
export TMP_SOURCE_DIR=$tmp_build_dir/onnxruntime-$VERSION_NUMBER
mkdir -p $TMP_SOURCE_DIR
(cd $SCRIPT_DIR/../../../.. && git archive --format=tar HEAD | (cd $TMP_SOURCE_DIR && tar xf -))
echo "exporting submodules..."
#TODO: support submodule in submodule
(cd $SCRIPT_DIR/../../../.. && git submodule foreach --recursive "
DEST_DIR=\$TMP_SOURCE_DIR/\$path;
echo \$DEST_DIR
mkdir -p \$DEST_DIR
git archive --format=tar HEAD | tar -C \$DEST_DIR -xf -
")
tar -cf ~/rpmbuild/SOURCES/onnxruntime.tar -C $tmp_build_dir onnxruntime-$VERSION_NUMBER
rm -rf $tmp_build_dir
/usr/bin/cp /data/onnxruntime/package/rpm/onnxruntime.spec ~/rpmbuild/SPECS
rpmbuild -ba ~/rpmbuild/SPECS/onnxruntime.spec
#Install the packages and test it
dnf install -y /root/rpmbuild/RPMS/x86_64/onnxruntime-*$VERSION_NUMBER-*.rpm
if [ -d /data/onnx ]; then
onnx_test_runner /data/onnx
fi
/usr/bin/cp /root/rpmbuild/RPMS/x86_64/onnxruntime-*$VERSION_NUMBER-*.rpm /data/a
cd /data/a
#convert rpm to tar
for filename in onnxruntime-*.rpm; do
tmp_dir=$(mktemp -d)
#older cpio doesn't support -D
rpm2cpio $filename | (cd $tmp_dir && cpio -idmv);
dest_filename="${filename//.rpm/.tar.bz2}"
dest_filename="${dest_filename//\.fc[0-9][0-9]\./.}"
tar -jcf $dest_filename -C $tmp_dir . ;
rm -rf tmp_dir
done