Signed-off-by: Zhang Yale <ylzhangah(a)qq.com>
---
tests/rpmbuild-pkg | 81 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 81 insertions(+)
create mode 100755 tests/rpmbuild-pkg
diff --git a/tests/rpmbuild-pkg b/tests/rpmbuild-pkg
new file mode 100755
index 00000000..9765eddb
--- /dev/null
+++ b/tests/rpmbuild-pkg
@@ -0,0 +1,81 @@
+#!/bin/bash
+# - benchmark
+# - rpm_spec
+# - os_mount
+# - os
+# - os_arch
+# - os_version
+
+. $LKP_SRC/lib/debug.sh
+. $LKP_SRC/lib/upload.sh
+
+check_vars()
+{
+ [ -n "$benchmark" ] || die "benchmark is empty"
+ [ -n "$os_mount" ] || die "os_mount is empty"
+ [ -n "$os" ] || die "os is empty"
+ [ -n "$os_arch" ] || die "os_arch is empty"
+ [ -n "$os_version" ] || die "os_version is empty"
+ [ -n "$rpm_spec" ] || die "rpm_spec is empty"
+}
+
+PKG_MNT=/initrd/rpmbuild-pkg
+mkdir -p "$PKG_MNT"
+pack_to=${os_mount}/${os}/${os_arch}/${os_version}/${benchmark}
+sync_dest="$PKG_MNT/$pack_to"
+
+install_tools()
+{
+ yum clean all
+ yum -y install rpm-build
+ yum -y install rpmdevtools
+ mkdir -p ~/rpmbuild/{SPECS,SRPMS,SOURCES,BUILD,RPMS}
+}
+
+get_pkgfile()
+{
+ curl -sS -H 'Content-Type: Application/json' -XPOST "$LKP_SERVER"':8100/git_command' \
+ -d '{"git_repo": "'${rpm_spec}'", "git_command": ["git-show", "HEAD:'$1'"]}' -o "${2}"
+}
+
+request_pkg()
+{
+ filelist=$(curl -sS -H 'Content-Type: Application/json' -XPOST "$LKP_SERVER"':8100/git_command' \
+ -d '{"git_repo": "'${rpm_spec}'", "git_command": ["git-ls-files", "."]}')
+
+ local dir="SOURCES"
+ for pkgfile in ${filelist[*]}
+ do
+ echo $pkgfile | egrep "\.spec$" && {
+ dir="SPECS"
+ }
+ get_pkgfile "$pkgfile" "${HOME}/rpmbuild/${dir}/$pkgfile"
+ done
+}
+
+rpmbuild_pkg()
+{
+ spec_dir=~/rpmbuild/SPECS/$benchmark.spec
+ sed -i 's/^\(Source[^ ]*:[ \t]*\)https/\1http/g' `grep http -rl $benchmark.spec`
+ # Install build depends
+ yum-builddep -y $spec_dir
+ # Download tar.gz to default path ~/rpmbuild/SOURCE
+ spectool -g -R $spec_dir
+ # Building rpm or srpm packages
+ rpmbuild -ba $spec_dir
+}
+
+upload_pkg()
+{
+ #rpm package will be generated in "~/rpmbuild/SRPMS" and "~/rpmbuild/RPMS"
+ for file in $(find ~/rpmbuild/ -type f -name "*.rpm")
+ do
+ upload_one_curl ${file} ${sync_dest}
+ done
+}
+
+check_vars
+install_tools
+request_pkg
+rpmbuild_pkg
+upload_pkg
--
2.23.0