Project

General

Profile

Download (3.72 KB) Statistics
| Branch: | Tag: | Revision:
#!/bin/bash

if [ $# -ne 2 ]; then
echo "$0 OLD_VERSION NEW_VERSION"
echo " echoes commands to clone old Koji tags (usually 'nightly') to a new release"
echo " makes no changes to the server, execute its output to action"
exit 1
fi

OLD=$1
VERSION=$2

NONSCL_SYSTEMS="fedora19"
SCL_SYSTEMS="rhel6 rhel7"

clone() {
echo kkoji clone-tag $PRODUCT-$OLD-$SYSTEM $PRODUCT-$VERSION-$SYSTEM

echo kkoji add-tag --parent=$PRODUCT-$VERSION-$SYSTEM $PRODUCT-$VERSION-$SYSTEM-override
echo kkoji add-tag --parent=$PRODUCT-$VERSION-$SYSTEM-override $PRODUCT-$VERSION-$SYSTEM-build

echo kkoji lock-tag $PRODUCT-$VERSION-$SYSTEM-build

ARCHES=`kkoji taginfo $PRODUCT-$OLD-$SYSTEM-build | grep Arches | sed -e 's|^Arches: ||' -e 's| |,|g'`

echo kkoji edit-tag --arches=$ARCHES $PRODUCT-$VERSION-$SYSTEM-build

kkoji list-external-repos --quiet --tag=$PRODUCT-$OLD-$SYSTEM-build | awk '{print $1 " " $2}' | while read PRIORITY REPO; do
echo kkoji add-external-repo -p $PRIORITY -t $PRODUCT-$VERSION-$SYSTEM-build $REPO
done

kkoji list-groups $PRODUCT-$OLD-$SYSTEM-build | awk '{print $1}' | while read LINE; do
echo $LINE | grep -q ":$" && {
# LINE is a package
PKG=`echo $LINE | tr -d ':'`
echo kkoji add-group-pkg $PRODUCT-$VERSION-$SYSTEM-build $GROUP $PKG
continue
}
# LINE is a group
GROUP=$LINE
echo kkoji add-group $PRODUCT-$VERSION-$SYSTEM-build $GROUP
done

echo kkoji add-target $PRODUCT-$VERSION-$SYSTEM $PRODUCT-$VERSION-$SYSTEM-build $PRODUCT-$VERSION-$SYSTEM
}

### Foreman
PRODUCT=foreman
# clone non-SCL OSes, nonscl tags for SCL OSes
for SYSTEM in $NONSCL_SYSTEMS $(echo $SCL_SYSTEMS | sed 's/\(^\| \)/\1nonscl-/g'); do
clone $PRODUCT-$OLD-$SYSTEM $PRODUCT-$VERSION-$SYSTEM
done

# clone SCL tags, inherit nonscl into build tags
for SYSTEM in $SCL_SYSTEMS; do
clone $PRODUCT-$OLD-$SYSTEM $PRODUCT-$VERSION-$SYSTEM
echo kkoji add-tag-inheritance --priority=10 $PRODUCT-$VERSION-$SYSTEM-build $PRODUCT-$VERSION-nonscl-$SYSTEM
done

# create -dist tag for mash, built from SCL+nonscl tags (like a SQL view)
for SYSTEM in $NONSCL_SYSTEMS $SCL_SYSTEMS; do
echo kkoji add-tag $PRODUCT-$VERSION-$SYSTEM-dist
echo kkoji add-tag-inheritance --priority=20 $PRODUCT-$VERSION-$SYSTEM-dist $PRODUCT-$VERSION-$SYSTEM
done
for SYSTEM in $SCL_SYSTEMS; do
echo kkoji add-tag-inheritance --priority=10 $PRODUCT-$VERSION-$SYSTEM-dist $PRODUCT-$VERSION-nonscl-$SYSTEM
done

### Plugins
PRODUCT=foreman-plugins
# clone plugin tags for non-SCL OSes, nonscl tags for SCL OSes
for SYSTEM in $NONSCL_SYSTEMS $(echo $SCL_SYSTEMS | sed 's/\(^\| \)/\1nonscl-/g'); do
clone $PRODUCT-$OLD-$SYSTEM $PRODUCT-$VERSION-$SYSTEM
done

# clone SCL tags, inherit core + plugin nonscl into build tags
for SYSTEM in $SCL_SYSTEMS; do
clone $PRODUCT-$OLD-$SYSTEM $PRODUCT-$VERSION-$SYSTEM
echo kkoji add-tag-inheritance --priority=5 $PRODUCT-$VERSION-$SYSTEM-build $PRODUCT-$VERSION-nonscl-$SYSTEM
echo kkoji add-tag-inheritance --priority=15 $PRODUCT-$VERSION-$SYSTEM-build foreman-$VERSION-nonscl-$SYSTEM
done

# inherit core Foreman tags into both non-SCL and SCL plugin build tags
for SYSTEM in $NONSCL_SYSTEMS $SCL_SYSTEMS $(echo $SCL_SYSTEMS | sed 's/\(^\| \)/\1nonscl-/g'); do
echo kkoji add-tag-inheritance --priority=10 $PRODUCT-$VERSION-$SYSTEM-build foreman-$VERSION-$SYSTEM
done

# create -dist tag for mash, built from SCL+nonscl tags (like a SQL view)
for SYSTEM in $NONSCL_SYSTEMS $SCL_SYSTEMS; do
echo kkoji add-tag $PRODUCT-$VERSION-$SYSTEM-dist
echo kkoji add-tag-inheritance --priority=20 $PRODUCT-$VERSION-$SYSTEM-dist $PRODUCT-$VERSION-$SYSTEM
done
for SYSTEM in $SCL_SYSTEMS; do
echo kkoji add-tag-inheritance --priority=10 $PRODUCT-$VERSION-$SYSTEM-dist $PRODUCT-$VERSION-nonscl-$SYSTEM
done
    (1-1/1)