mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-01 18:25:59 +00:00
PT-2078 Automate the jenkins job for PT Release
This commit is contained in:
@@ -39,7 +39,7 @@ visit http://www.percona.com/software/.
|
||||
|
||||
%build
|
||||
%{__perl} Makefile.PL INSTALLDIRS=vendor < /dev/null
|
||||
sed -i '499d' Makefile
|
||||
#sed -i '499d' Makefile
|
||||
make %{?_smp_mflags}
|
||||
|
||||
%install
|
||||
|
562
config/scripts/pt_builder.sh
Normal file
562
config/scripts/pt_builder.sh
Normal file
@@ -0,0 +1,562 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
shell_quote_string() {
|
||||
echo "$1" | sed -e 's,\([^a-zA-Z0-9/_.=-]\),\\\1,g'
|
||||
}
|
||||
|
||||
usage () {
|
||||
cat <<EOF
|
||||
Usage: $0 [OPTIONS]
|
||||
The following options may be given :
|
||||
--builddir=DIR Absolute path to the dir where all actions will be performed
|
||||
--get_sources Source will be downloaded from github
|
||||
--build_src_rpm If it is set - src rpm will be built
|
||||
--build_src_deb If it is set - source deb package will be built
|
||||
--build_rpm If it is set - rpm will be built
|
||||
--build_deb If it is set - deb will be built
|
||||
--build_tarball If it is set - tarball will be built
|
||||
--install_deps Install build dependencies(root privilages are required)
|
||||
--branch Branch for build
|
||||
--repo Repo for build
|
||||
--help) usage ;;
|
||||
Example $0 --builddir=/tmp/BUILD --get_sources=1 --build_src_rpm=1 --build_rpm=1
|
||||
EOF
|
||||
exit 1
|
||||
}
|
||||
|
||||
append_arg_to_args () {
|
||||
args="$args "$(shell_quote_string "$1")
|
||||
}
|
||||
|
||||
parse_arguments() {
|
||||
pick_args=
|
||||
if test "$1" = PICK-ARGS-FROM-ARGV
|
||||
then
|
||||
pick_args=1
|
||||
shift
|
||||
fi
|
||||
|
||||
for arg do
|
||||
val=$(echo "$arg" | sed -e 's;^--[^=]*=;;')
|
||||
case "$arg" in
|
||||
--builddir=*) WORKDIR="$val" ;;
|
||||
--build_src_rpm=*) SRPM="$val" ;;
|
||||
--build_src_deb=*) SDEB="$val" ;;
|
||||
--build_rpm=*) RPM="$val" ;;
|
||||
--build_deb=*) DEB="$val" ;;
|
||||
--build_tarball=*) BTARBALL="$val" ;;
|
||||
--get_sources=*) SOURCE="$val" ;;
|
||||
--version=*) VERSION="$val" ;;
|
||||
--repo=*) GIT_REPO="$val" ;;
|
||||
--branch=*) GIT_BRANCH="$val" ;;
|
||||
--install_deps=*) INSTALL="$val" ;;
|
||||
--help) usage ;;
|
||||
*)
|
||||
if test -n "$pick_args"
|
||||
then
|
||||
append_arg_to_args "$arg"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
check_workdir(){
|
||||
if [ "x$WORKDIR" = "x$CURDIR" ]
|
||||
then
|
||||
echo >&2 "Current directory cannot be used for building!"
|
||||
exit 1
|
||||
else
|
||||
if ! test -d "$WORKDIR"
|
||||
then
|
||||
echo >&2 "$WORKDIR is not a directory."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
return
|
||||
}
|
||||
|
||||
add_percona_yum_repo(){
|
||||
yum -y install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
|
||||
percona-release disable all
|
||||
percona-release enable ppg-11.19 testing
|
||||
return
|
||||
}
|
||||
|
||||
get_sources(){
|
||||
cd "${WORKDIR}"
|
||||
if [ "${SOURCE}" = 0 ]
|
||||
then
|
||||
echo "Sources will not be downloaded"
|
||||
return 0
|
||||
fi
|
||||
PRODUCT=percona-toolkit
|
||||
echo "PRODUCT=${PRODUCT}" > percona-toolkit.properties
|
||||
PRODUCT_FULL=${PRODUCT}-${VERSION}
|
||||
echo "VERSION=${VERSION}" >> percona-toolkit.properties
|
||||
echo "GIT_VERSION=${GIT_VERSION}" >> percona-toolkit.properties
|
||||
echo "REVISION=${REVISION}" >> percona-toolkit.properties
|
||||
echo "RPM_RELEASE=${RPM_RELEASE}" >> percona-toolkit.properties
|
||||
echo "DEB_RELEASE=${DEB_RELEASE}" >> percona-toolkit.properties
|
||||
echo "GIT_REPO=${GIT_REPO}" >> percona-toolkit.properties
|
||||
BRANCH_NAME="${GIT_BRANCH}"
|
||||
echo "BRANCH_NAME=${BRANCH_NAME}" >> percona-toolkit.properties
|
||||
echo "PRODUCT_FULL=${PRODUCT_FULL}" >> percona-toolkit.properties
|
||||
echo "BUILD_NUMBER=${BUILD_NUMBER}" >> percona-toolkit.properties
|
||||
echo "BUILD_ID=${BUILD_ID}" >> percona-toolkit.properties
|
||||
echo "GIT_BRANCH=${GIT_BRANCH}" >> percona-toolkit.properties
|
||||
rm -rf percona-toolkit*
|
||||
git clone ${GIT_REPO} $PRODUCT-$VERSION
|
||||
cd $PRODUCT-$VERSION
|
||||
git fetch origin
|
||||
if [ ! -z ${BRANCH_NAME} ]; then
|
||||
git checkout ${BRANCH_NAME}
|
||||
fi
|
||||
sed -i 's:> 9:> 8:g' config/rpm/percona-toolkit.spec
|
||||
sed -i 's:perl(English):perl-English perl-sigtrap perl-Sys-Hostname perl-FindBin:g' config/rpm/percona-toolkit.spec
|
||||
REVISION=$(git rev-parse --short HEAD)
|
||||
cd ../
|
||||
if [ -z "${DESTINATION}" ]; then
|
||||
export DESTINATION=experimental
|
||||
fi
|
||||
echo "REVISION=${REVISION}" >> ${WORKDIR}/percona-toolkit.properties
|
||||
echo "DESTINATION=${DESTINATION}" >> percona-toolkit.properties
|
||||
echo "UPLOAD=UPLOAD/${DESTINATION}/BUILDS/${PRODUCT}/${PRODUCT_FULL}/${BRANCH_NAME}/${REVISION}/${BUILD_ID}" >> percona-toolkit.properties
|
||||
cd ${PRODUCT_FULL}
|
||||
rm -fr debian rpm
|
||||
cp -ap config/deb/ ./debian
|
||||
cp -ap config/rpm/ ./rpm
|
||||
cd ${WORKDIR}
|
||||
#
|
||||
source percona-toolkit.properties
|
||||
#
|
||||
|
||||
tar --owner=0 --group=0 -czf ${PRODUCT}-${VERSION}.tar.gz ${PRODUCT_FULL}
|
||||
mkdir $WORKDIR/source_tarball
|
||||
mkdir $CURDIR/source_tarball
|
||||
cp ${PRODUCT_FULL}.tar.gz $WORKDIR/source_tarball
|
||||
cp ${PRODUCT_FULL}.tar.gz $CURDIR/source_tarball
|
||||
cd $CURDIR
|
||||
return
|
||||
}
|
||||
|
||||
get_system(){
|
||||
if [ -f /etc/redhat-release ]; then
|
||||
RHEL=$(rpm --eval %rhel)
|
||||
ARCH=$(echo $(uname -m) | sed -e 's:i686:i386:g')
|
||||
OS_NAME="el$RHEL"
|
||||
OS="rpm"
|
||||
else
|
||||
ARCH=$(uname -m)
|
||||
OS_NAME="$(lsb_release -sc)"
|
||||
OS="deb"
|
||||
fi
|
||||
return
|
||||
}
|
||||
|
||||
install_go() {
|
||||
wget --no-check-certificate http://jenkins.percona.com/downloads/golang/go1.9.4.linux-amd64.tar.gz -O /tmp/golang1.9.4.tar.gz
|
||||
tar --transform=s,go,go1.9, -zxf /tmp/golang1.9.4.tar.gz
|
||||
rm -rf /usr/local/go /usr/local/go1.8 /usr/local/go1.9
|
||||
mv go1.9 /usr/local/
|
||||
ln -s /usr/local/go1.9 /usr/local/go
|
||||
GO_VERSION=1.20.5
|
||||
wget --progress=dot:giga https://dl.google.com/go/go${GO_VERSION}.linux-amd64.tar.gz -O /tmp/golang.tar.gz
|
||||
tar -C /usr/local -xzf /tmp/golang.tar.gz
|
||||
update-alternatives --install "/usr/bin/go" "go" "/usr/local/go/bin/go" 0
|
||||
update-alternatives --set go /usr/local/go/bin/go
|
||||
update-alternatives --install "/usr/bin/gofmt" "gofmt" "/usr/local/go/bin/gofmt" 0
|
||||
update-alternatives --set gofmt /usr/local/go/bin/gofmt
|
||||
rm /tmp/golang.tar.gz
|
||||
}
|
||||
|
||||
update_go() {
|
||||
cd $WORKDIR
|
||||
mkdir -p go/src/github.com/percona
|
||||
cd go/
|
||||
export GOROOT="/usr/local/go/"
|
||||
export GOPATH=$(pwd)
|
||||
export PATH="/usr/local/go/bin:$PATH:$GOPATH"
|
||||
export GOBINPATH="/usr/local/go/bin"
|
||||
cd src/github.com/percona
|
||||
cp -r $WORKDIR/$PRODUCT_FULL .
|
||||
mv ${PRODUCT_FULL} ${PRODUCT}
|
||||
cd ${PRODUCT}
|
||||
go get -u github.com/golang/dep/cmd/dep
|
||||
go install ./...
|
||||
wget https://github.com/Masterminds/glide/releases/download/v0.13.3/glide-v0.13.3-linux-amd64.tar.gz
|
||||
tar -xvzf glide-v0.13.3-linux-amd64.tar.gz
|
||||
cp -p linux-amd64/glide /usr/local/go/bin
|
||||
go get github.com/pkg/errors
|
||||
wget --no-check-certificate https://github.com/golang/dep/releases/download/v0.5.4/dep-linux-amd64
|
||||
mv dep-linux-amd64 /usr/local/go/bin/dep
|
||||
go install github.com/pkg/errors
|
||||
}
|
||||
|
||||
install_deps() {
|
||||
if [ $INSTALL = 0 ]
|
||||
then
|
||||
echo "Dependencies will not be installed"
|
||||
return;
|
||||
fi
|
||||
if [ $( id -u ) -ne 0 ]
|
||||
then
|
||||
echo "It is not possible to instal dependencies. Please run as root"
|
||||
exit 1
|
||||
fi
|
||||
CURPLACE=$(pwd)
|
||||
|
||||
if [ "x$OS" = "xrpm" ]; then
|
||||
yum -y install wget git which tar
|
||||
add_percona_yum_repo
|
||||
# wget http://jenkins.percona.com/yum-repo/percona-dev.repo
|
||||
# mv -f percona-dev.repo /etc/yum.repos.d/
|
||||
yum clean all
|
||||
yum -y install curl epel-release
|
||||
RHEL=$(rpm --eval %rhel)
|
||||
yum -y install wget tar findutils coreutils rpm-build perl-ExtUtils-MakeMaker make perl-DBD-MySQL
|
||||
install_go
|
||||
else
|
||||
apt-get -y update
|
||||
apt-get -y install curl wget git tar lsb-release
|
||||
export DEBIAN_VERSION=$(lsb_release -sc)
|
||||
export ARCH=$(echo $(uname -m) | sed -e 's:i686:i386:g')
|
||||
apt-get -y install gnupg2
|
||||
apt-get update || true
|
||||
ENV export DEBIAN_FRONTEND=noninteractive
|
||||
apt-get update
|
||||
if [ $DEBIAN_VERSION = buster ]; then
|
||||
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0E98404D386FA1D9
|
||||
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6ED0E7B82643E131
|
||||
until DEBIAN_FRONTEND=noninteractive apt-get update --allow-releaseinfo-change; do
|
||||
echo "waiting"
|
||||
sleep 1
|
||||
done
|
||||
fi
|
||||
if [ $DEBIAN_VERSION = bionic -o $DEBIAN_VERSION = focal -o $DEBIAN_VERSION = bullseye -o $DEBIAN_VERSION = buster -o $DEBIAN_VERSION = xenial -o $DEBIAN_VERSION = jammy ]; then
|
||||
until apt-get update; do
|
||||
echo "waiting"
|
||||
sleep 1
|
||||
done
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update
|
||||
until DEBIAN_FRONTEND=noninteractive apt-get -y install build-essential devscripts debconf debhelper perl; do
|
||||
echo "waiting"
|
||||
sleep 1
|
||||
done
|
||||
fi
|
||||
install_go
|
||||
#update_pat
|
||||
fi
|
||||
return;
|
||||
}
|
||||
|
||||
get_tar(){
|
||||
TARBALL=$1
|
||||
TARFILE=$(basename $(find $WORKDIR/$TARBALL -name 'percona-toolkit*.tar.gz' | sort | tail -n1))
|
||||
if [ -z $TARFILE ]
|
||||
then
|
||||
TARFILE=$(basename $(find $CURDIR/$TARBALL -name 'percona-toolkit*.tar.gz' | sort | tail -n1))
|
||||
if [ -z $TARFILE ]
|
||||
then
|
||||
echo "There is no $TARBALL for build"
|
||||
exit 1
|
||||
else
|
||||
cp $CURDIR/$TARBALL/$TARFILE $WORKDIR/$TARFILE
|
||||
fi
|
||||
else
|
||||
cp $WORKDIR/$TARBALL/$TARFILE $WORKDIR/$TARFILE
|
||||
fi
|
||||
return
|
||||
}
|
||||
|
||||
get_deb_sources(){
|
||||
param=$1
|
||||
echo $param
|
||||
FILE=$(basename $(find $WORKDIR/source_deb -name "percona-toolkit*.$param" | sort | tail -n1))
|
||||
if [ -z $FILE ]
|
||||
then
|
||||
FILE=$(basename $(find $CURDIR/source_deb -name "percona-toolkit*.$param" | sort | tail -n1))
|
||||
if [ -z $FILE ]
|
||||
then
|
||||
echo "There is no sources for build"
|
||||
exit 1
|
||||
else
|
||||
cp $CURDIR/source_deb/$FILE $WORKDIR/
|
||||
fi
|
||||
else
|
||||
cp $WORKDIR/source_deb/$FILE $WORKDIR/
|
||||
fi
|
||||
return
|
||||
}
|
||||
|
||||
build_srpm(){
|
||||
if [ $SRPM = 0 ]
|
||||
then
|
||||
echo "SRC RPM will not be created"
|
||||
return;
|
||||
fi
|
||||
if [ "x$OS" = "xdeb" ]
|
||||
then
|
||||
echo "It is not possible to build src rpm here"
|
||||
exit 1
|
||||
fi
|
||||
cd $WORKDIR
|
||||
get_tar "source_tarball"
|
||||
rm -fr rpmbuild
|
||||
#ls | grep -v tar.gz | xargs rm -rf
|
||||
TARFILE=$(find . -name 'percona-toolkit-*.tar.gz' | sort | tail -n1)
|
||||
SRC_DIR=${TARFILE%.tar.gz}
|
||||
tar xvf ${TARFILE}
|
||||
mkdir -vp rpmbuild/{SOURCES,SPECS,BUILD,SRPMS,RPMS}
|
||||
tar vxzf ${WORKDIR}/${TARFILE} --wildcards '*/rpm' --strip=1
|
||||
#
|
||||
cp -av rpm/* rpmbuild/SOURCES
|
||||
cp -av rpmbuild/SOURCES/percona-toolkit.spec rpmbuild/SPECS
|
||||
cd ${WORKDIR}/rpmbuild/SPECS
|
||||
echo '%undefine _missing_build_ids_terminate_build' | cat - percona-toolkit.spec > pt.spec && mv pt.spec percona-toolkit.spec
|
||||
echo '%define debug_package %{nil}' | cat - percona-toolkit.spec > pt.spec && mv pt.spec percona-toolkit.spec
|
||||
sed -i "s/@@ARHITECTURE@@/x86_64/" percona-toolkit.spec
|
||||
cd ${WORKDIR}/${PRODUCT_FULL}
|
||||
rm -rf bin/govendor
|
||||
rm -rf bin/glide
|
||||
cd ../
|
||||
tar czf ${TARFILE} ${PRODUCT_FULL}
|
||||
|
||||
# wget --no-check-certificate https://download.osgeo.org/postgis/docs/postgis-3.3.1.pdf
|
||||
#wget --no-check-certificate https://www.postgresql.org/files/documentation/pdf/12/postgresql-12-A4.pdf
|
||||
cd ${WORKDIR}
|
||||
#
|
||||
mv -fv ${TARFILE} ${WORKDIR}/rpmbuild/SOURCES
|
||||
# if [ -f /opt/rh/devtoolset-7/enable ]; then
|
||||
# source /opt/rh/devtoolset-7/enable
|
||||
# source /opt/rh/llvm-toolset-7/enable
|
||||
# fi
|
||||
rpmbuild -bs --define "_topdir ${WORKDIR}/rpmbuild" --define "version $VERSION" --define "release $RPM_RELEASE" --define "dist .generic" rpmbuild/SPECS/percona-toolkit.spec
|
||||
|
||||
mkdir -p ${WORKDIR}/srpm
|
||||
mkdir -p ${CURDIR}/srpm
|
||||
cp rpmbuild/SRPMS/*.src.rpm ${CURDIR}/srpm
|
||||
cp rpmbuild/SRPMS/*.src.rpm ${WORKDIR}/srpm
|
||||
return
|
||||
}
|
||||
|
||||
build_rpm(){
|
||||
if [ $RPM = 0 ]
|
||||
then
|
||||
echo "RPM will not be created"
|
||||
return;
|
||||
fi
|
||||
if [ "x$OS" = "xdeb" ]
|
||||
then
|
||||
echo "It is not possible to build rpm here"
|
||||
exit 1
|
||||
fi
|
||||
SRC_RPM=$(basename $(find $WORKDIR/srpm -name 'percona-toolkit*.src.rpm' | sort | tail -n1))
|
||||
if [ -z $SRC_RPM ]
|
||||
then
|
||||
SRC_RPM=$(basename $(find $CURDIR/srpm -name 'percona-toolkit*.src.rpm' | sort | tail -n1))
|
||||
if [ -z $SRC_RPM ]
|
||||
then
|
||||
echo "There is no src rpm for build"
|
||||
echo "You can create it using key --build_src_rpm=1"
|
||||
exit 1
|
||||
else
|
||||
cp $CURDIR/srpm/$SRC_RPM $WORKDIR
|
||||
fi
|
||||
else
|
||||
cp $WORKDIR/srpm/$SRC_RPM $WORKDIR
|
||||
fi
|
||||
cd $WORKDIR
|
||||
rm -fr rpmbuild
|
||||
mkdir -vp rpmbuild/{SOURCES,SPECS,BUILD,SRPMS,RPMS}
|
||||
cp $SRC_RPM rpmbuild/SRPMS/
|
||||
|
||||
cd rpmbuild/SPECS
|
||||
echo '%undefine _missing_build_ids_terminate_build' | cat - percona-toolkit.spec > pt.spec && mv pt.spec percona-toolkit.spec
|
||||
echo '%define debug_package %{nil}' | cat - percona-toolkit.spec > pt.spec && mv pt.spec percona-toolkit.spec
|
||||
sed -i "s/@@ARHITECTURE@@/x86_64/" percona-toolkit.spec
|
||||
#
|
||||
cd $WORKDIR
|
||||
RHEL=$(rpm --eval %rhel)
|
||||
ARCH=$(echo $(uname -m) | sed -e 's:i686:i386:g')
|
||||
echo "RHEL=${RHEL}" >> percona-toolkit.properties
|
||||
echo "ARCH=${ARCH}" >> percona-toolkit.properties
|
||||
rpmbuild --target=x86_64 --define "version $VERSION" --define "dist .el${RHEL}" --define "release $RPM_RELEASE.el${RHEL}" --define "_topdir ${WORKDIR}/rpmbuild" --rebuild rpmbuild/SRPMS/${SRC_RPM}
|
||||
|
||||
return_code=$?
|
||||
if [ $return_code != 0 ]; then
|
||||
exit $return_code
|
||||
fi
|
||||
mkdir -p ${WORKDIR}/rpm
|
||||
mkdir -p ${CURDIR}/rpm
|
||||
cp rpmbuild/RPMS/*/*.rpm ${WORKDIR}/rpm
|
||||
cp rpmbuild/RPMS/*/*.rpm ${CURDIR}/rpm
|
||||
}
|
||||
|
||||
build_source_deb(){
|
||||
if [ $SDEB = 0 ]
|
||||
then
|
||||
echo "source deb package will not be created"
|
||||
return;
|
||||
fi
|
||||
if [ "x$OS" = "xrpm" ]
|
||||
then
|
||||
echo "It is not possible to build source deb here"
|
||||
exit 1
|
||||
fi
|
||||
get_tar "source_tarball"
|
||||
rm -f *.dsc *.orig.tar.gz *.debian.tar.gz *.changes
|
||||
#
|
||||
TARFILE=$(basename $(find . -name 'percona-toolkit-*.tar.gz' | sort | tail -n1))
|
||||
DEBIAN=$(lsb_release -sc)
|
||||
ARCH=$(echo $(uname -m) | sed -e 's:i686:i386:g')
|
||||
tar zxf ${TARFILE}
|
||||
BUILDDIR=${TARFILE%.tar.gz}
|
||||
mv ${TARFILE} ${PRODUCT}_${VERSION}.orig.tar.gz
|
||||
update_go
|
||||
cd ${WORKDIR}/${BUILDDIR}
|
||||
sed -i 's/@@ARHITECTURE@@/amd64/' debian/control
|
||||
cd debian
|
||||
echo "${PRODUCT} (${VERSION}) unstable; urgency=low" > changelog
|
||||
echo " * Initial Release." >> changelog
|
||||
echo " -- Percona Toolkit Developers <toolkit-dev@percona.com> $(date -R)" >> changelog
|
||||
echo "override_dh_builddeb:" >> rules
|
||||
echo " dh_builddeb -- -Zgzip" >> rules
|
||||
cd ../
|
||||
dch -D unstable --force-distribution -v "${VERSION}-${DEB_RELEASE}" "Update to new upstream release Percona-Toolkit ${VERSION}-${DEB_RELEASE}"
|
||||
dpkg-buildpackage -S
|
||||
cd ../
|
||||
mkdir -p $WORKDIR/source_deb
|
||||
mkdir -p $CURDIR/source_deb
|
||||
#cp *.tar.xz* $WORKDIR/source_deb
|
||||
cp *_source.changes $WORKDIR/source_deb
|
||||
cp *.dsc $WORKDIR/source_deb
|
||||
cp *.orig.tar.gz $WORKDIR/source_deb
|
||||
# cp *.tar.xz* $CURDIR/source_deb
|
||||
cp *_source.changes $CURDIR/source_deb
|
||||
cp *.dsc $CURDIR/source_deb
|
||||
cp *.orig.tar.gz $CURDIR/source_deb
|
||||
}
|
||||
|
||||
build_tarball(){
|
||||
if [ $BTARBALL = 0 ]
|
||||
then
|
||||
echo "Binary tarball will not be created"
|
||||
return;
|
||||
fi
|
||||
export DEBIAN_VERSION=$(lsb_release -sc)
|
||||
export BUILD_GO=1
|
||||
export QUIET=1
|
||||
export UPDATE=0
|
||||
export CHECK=0
|
||||
cd $WORKDIR
|
||||
mkdir TARGET
|
||||
get_tar "source_tarball"
|
||||
TARBALL=$(find . -type f -name 'percona-toolkit*.tar.gz')
|
||||
#VERSION_TMP=$(echo ${TARBALL}| awk -F '-' '{print $2}')
|
||||
# echo $VERSION_TMP
|
||||
# VERSION=${VERSION_TMP%.tar.gz}
|
||||
# DIRNAME=${NAME}-${VERSION}
|
||||
tar xzf ${TARBALL}
|
||||
update_go
|
||||
cd ${WORKDIR}/go/src/github.com/percona/${PRODUCT}
|
||||
sed -i 's:make $OS_ARCH:version=$VERSION make linux-amd64:' util/build-packages
|
||||
bash -x util/build-packages ${VERSION} docs/release_notes.rst
|
||||
cp release/${PRODUCT}-${VERSION}.tar.gz ${WORKDIR}/${PRODUCT}-${VERSION}_x86_64.tar.gz
|
||||
cd ${WORKDIR}
|
||||
# rm -rf `ls | grep -v x86_64.tar.gz| grep -v percona-toolkit.properties`
|
||||
mkdir -p $CURDIR/tarball
|
||||
mkdir -p $WORKDIR/tarball
|
||||
cp $WORKDIR/*x86_64*tar.gz $WORKDIR/tarball
|
||||
cp $WORKDIR/*x86_64*tar.gz $CURDIR/tarball
|
||||
}
|
||||
|
||||
build_deb(){
|
||||
if [ $DEB = 0 ]
|
||||
then
|
||||
echo "source deb package will not be created"
|
||||
return;
|
||||
fi
|
||||
if [ "x$OS" = "xrmp" ]
|
||||
then
|
||||
echo "It is not possible to build source deb here"
|
||||
exit 1
|
||||
fi
|
||||
for file in 'dsc' 'orig.tar.gz' 'changes'
|
||||
do
|
||||
get_deb_sources $file
|
||||
done
|
||||
cd $WORKDIR
|
||||
tar xvf ${PRODUCT}_${VERSION}.orig.tar.gz
|
||||
rm -fv *.deb
|
||||
#
|
||||
export DEBIAN_VERSION=$(lsb_release -sc)
|
||||
export DEBIAN=$(lsb_release -sc)
|
||||
export ARCH=$(echo $(uname -m) | sed -e 's:i686:i386:g')
|
||||
export DIRNAME=$(echo ${DSC%.dsc} | sed -e 's:_:-:g')
|
||||
#export VERSION=$(echo ${DSC%.dsc} | awk -F'_' '{print $2}')
|
||||
#
|
||||
echo "ARCH=${ARCH}" >> percona-toolkit.properties
|
||||
echo "DEBIAN_VERSION=${DEBIAN_VERSION}" >> percona-toolkit.properties
|
||||
echo VERSION=${VERSION} >> percona-toolkit.properties
|
||||
#
|
||||
DSC=$(basename $(find . -name '*.dsc' | sort | tail -n1))
|
||||
#
|
||||
dpkg-source -x ${DSC}
|
||||
#
|
||||
cd ${PRODUCT}-${VERSION}
|
||||
echo 9 > debian/compat
|
||||
export GOBINPATH="$(pwd)/go/bin"
|
||||
echo ${GOBINPATH}
|
||||
cp /usr/local/go/bin/dep ${GOBINPATH}/
|
||||
cp /usr/local/go/bin/glide ${GOBINPATH}/
|
||||
rm -rf bin/pt-mongo*
|
||||
cd src/go
|
||||
sed -i "s|dep ensure|${GOBINPATH}/dep ensure|g" Makefile
|
||||
version=$VERSION make linux-amd64
|
||||
cd ../../
|
||||
dch -b -m -D "all" --force-distribution -v "${VERSION}-${DEB_RELEASE}.${DEBIAN_VERSION}" 'Update distribution'
|
||||
dpkg-buildpackage -rfakeroot -us -uc -b
|
||||
mkdir -p $CURDIR/deb
|
||||
mkdir -p $WORKDIR/deb
|
||||
cp $WORKDIR/*.*deb $WORKDIR/deb
|
||||
cp $WORKDIR/*.*deb $CURDIR/deb
|
||||
}
|
||||
#main
|
||||
export GIT_SSL_NO_VERIFY=1
|
||||
CURDIR=$(pwd)
|
||||
VERSION_FILE=$CURDIR/percona-toolkit.properties
|
||||
args=
|
||||
WORKDIR=
|
||||
SRPM=0
|
||||
SDEB=0
|
||||
RPM=0
|
||||
DEB=0
|
||||
TARBALL=0
|
||||
BTARBALL=0
|
||||
SOURCE=0
|
||||
OS_NAME=
|
||||
ARCH=
|
||||
OS=
|
||||
INSTALL=0
|
||||
RPM_RELEASE=1
|
||||
DEB_RELEASE=1
|
||||
REVISION=0
|
||||
GIT_BRANCH=${GIT_BRANCH}
|
||||
GIT_REPO=https://github.com/percona/percona-toolkit.git
|
||||
PRODUCT=percona-toolkit
|
||||
DEBUG=0
|
||||
parse_arguments PICK-ARGS-FROM-ARGV "$@"
|
||||
VERSION=${VERSION}
|
||||
RELEASE='1'
|
||||
PRODUCT_FULL=${PRODUCT}-${VERSION}
|
||||
|
||||
check_workdir
|
||||
get_system
|
||||
install_deps
|
||||
get_sources
|
||||
build_srpm
|
||||
build_source_deb
|
||||
build_rpm
|
||||
build_deb
|
||||
build_tarball
|
Reference in New Issue
Block a user