Skip to content

Instantly share code, notes, and snippets.

@omarkj
Created March 10, 2011 19:35
Show Gist options
  • Save omarkj/864751 to your computer and use it in GitHub Desktop.
Save omarkj/864751 to your computer and use it in GitHub Desktop.
Jenkins RPM automater
BUILDING=tikka
RPM_VERSION=`echo ${VERSION} | sed -e 's/-/_/g'`
RPM_FILE_NAME=${BUILDING}-${RPM_VERSION}-1.x86_64.rpm
TAR_FILE_NAME=${BUILDING}-${VERSION}.tar.gz
SPEC_FILE=${BUILDING}-${VERSION}.spec
## Create rpmbuild env (Doesn't matter if it exists)
mkdir -p ${HOME}/rpmbuild/{BUILD,RPMS,SOURCES,SPECS}
## Move RPM release exec to release folder (so it will run on target system)
cp rel/files/rpm/${BUILDING} rel/${BUILDING}/bin/${BUILDING}
## Move production config to the release
cp rel/files/rpm/app.config rel/${BUILDING}/etc/app.config
cp rel/files/rpm/vm.args rel/${BUILDING}/etc/vm.args
## Fix the SPEC file
sed "s/~~VERSION~~/${RPM_VERSION}/g;s/~~TAR_FILE~~/${TAR_FILE_NAME}/g" < rel/files/rpm/${BUILDING}.spec > ${HOME}/rpmbuild/SPECS/${SPEC_FILE}
## Now lets create the source file
cd rel
tar cvzf ${HOME}/rpmbuild/SOURCES/${TAR_FILE_NAME} ${BUILDING}
## Time to build
cd ${HOME}/rpmbuild/SPECS
rpmbuild -bb ${SPEC_FILE}
scp ${HOME}/rpmbuild/RPMS/x86_64/${RPM_FILE_NAME} ${REMOTE_DROP}
## Cleanup
rm ${HOME}/rpmbuild/SPECS/${BUILDING}-${VERSION}.spec
rm ${HOME}/rpmbuild/RPMS/x86_64/${RPM_FILE_NAME}
rm ${HOME}/rpmbuild/SOURCES/${TAR_FILE_NAME}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment