Skip to content

Instantly share code, notes, and snippets.

@sergiopena
Last active May 10, 2018 07:40
Show Gist options
  • Save sergiopena/18d3b52f68041242fe2d8b7b05ca0a3c to your computer and use it in GitHub Desktop.
Save sergiopena/18d3b52f68041242fe2d8b7b05ca0a3c to your computer and use it in GitHub Desktop.
Gather packages from jenkins output and publish them to public mirror
#!/bin/bash
#Publishing minor release
SOURCEUSER=root
SOURCEHOST=x
PUBLICUSER=root
PUBLICHOST=x
RELEASE=$1
MAYOR=${RELEASE%.*}
echo "========================================="
echo " $RELEASE is a minor version for $MAYOR"
echo "========================================="
for VERSION in el6 el7; do
if [[ $1 =~ [0-9].[0-9].[0-9] ]];
then
REMOTEPATH=/opt/releases/$RELEASE/pkgs/$VERSION
LOCALPATH=/mirror/$VERSION/$MAYOR/updates/x86_64
echo ""
echo "---------------------------------------"
echo "About to copy packages next packages "
echo " FROM jenkins@$REMOTEPATH "
echo " TO localhost@$LOCALPATH"
echo "---------------------------------------"
echo ""
ssh $SOURCEUSER@$SOURCEHOST "ls -l $REMOTEPATH/*.rpm | cut -f 3- -d\t"
echo ""
echo "---------------------------------------"
echo "About to execute:"
echo " scp $SOURCEUSER@$SOURCEHOST:$REMOTEPATH/*.rpm $LOCALPATH"
echo "---------------------------------------"
read -p "Are you sure? " -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]
then
echo ''
echo "Copying packages..."
scp $SOURCEUSER@$SOURCEHOST:$REMOTEPATH/*.rpm $LOCALPATH
pushd $LOCALPATH
echo "Creating repo..."
createrepo --workers=4 .
popd
fi
echo ""
echo "---------------------------------------"
echo "Public repositories:"
echo " PWD $LOCALPATH"
echo " scp -r * $PUBLICUSER@$PUBLICHOST:$LOCALPATH"
echo "---------------------------------------"
read -p "Do you wan to publish them? " -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]
then
echo ''
pushd $LOCALPATH
scp -r *$RELEASE*.rpm $PUBLICUSER@$PUBLICHOST:$(pwd)
ssh $PUBLICUSER@$PUBLICHOST "cd $(pwd) && createrepo ."
popd
fi
fi
done
echo ""
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment