summaryrefslogtreecommitdiffstats
path: root/mockit
diff options
context:
space:
mode:
Diffstat (limited to 'mockit')
-rwxr-xr-xmockit209
1 files changed, 163 insertions, 46 deletions
diff --git a/mockit b/mockit
index b99ed6a..0af54ca 100755
--- a/mockit
+++ b/mockit
@@ -2,29 +2,73 @@
if [ "$2" = "" ]; then
echo -e "\nusage: $0 [ options ] SRPM distro [ min_ver [, max_ver [, mock_options ]]]\n"
- echo -e "\t--nobase | --scl only build SCL packages"
- echo -e "\t--noscl | --base only build base packages"
- echo -e "\t--redis store build command in redis queue\n"
+ echo -e "\t--redis store build command in redis queue"
+ echo -e "\t--valkey store build command in valkey queue"
+ echo -e "\t--list list queue content"
+ echo -e "\t--nobase | --scl only build PHP SCL packages"
+ echo -e "\t--noscl | --base only build PHP base packages"
+ echo -e "\t--mock distro is a mock config name\n"
+ echo -e "Special distro: all, zts, memcached, im6, im7\n"
exit 0
fi
# Script options
BUILD_BASE=1
BUILD_SCLS=1
+BUILD_MOCK=0
REDIS=0
+REMOTE=0
+
+# ARCH detection and check
+if [ "$(uname -m)" = "x86_64" ]; then
+ SUF=x
+ QUEUE=mockx
+ REDISCLI="valkey-cli"
+else
+ SUF=a
+ QUEUE=mocka
+ REDISCLI="valkey-cli -h remi"
+fi
+
+if [ "$1" == "--redis" -o "$1" == "--valkey" ]; then
+ CHECK=$($REDISCLI ping)
+ [ "$CHECK" = "PONG" ] || exit 1
+ REDIS=1
+ shift
+fi
+
+# Queue commands
+if [ "$1" == "--list" ]; then
+ a=$($REDISCLI bgsave)
+ echo "-- x86_64 queue: $($REDISCLI scard mockx) tasks --"
+ a=$($REDISCLI smembers mockx)
+ [ -n "$a" ] && $REDISCLI smembers mockx | \
+ sed -e 's/^.*-r / /;s/rebuild/\t/;s:/.*/::' | sort | head -n 25 || \
+ ps -ef | grep mock/mock | grep -v grep
+
+ echo -e "\n-- aarch64 queue: $($REDISCLI scard mocka) tasks --"
+ a=$($REDISCLI smembers mocka)
+ [ -n "$a" ] && $REDISCLI smembers mocka | \
+ sed -e 's/^.*-r / /;s/rebuild/\t/;s:/.*/::'| sort || \
+ ps -ef | ssh remi@ampere 'ps -ef | grep mock/mock | grep -v grep'
+
+ exit 0
+elif [ "$1" == "--clean" ]; then
+ $REDISCLI del mockx
+ $REDISCLI del mocka
+ exit 0
+fi
if [ "$1" == "--nobase" -o "$1" == "--scl" ]; then
BUILD_BASE=0
shift
-fi
-if [ "$1" == "--noscl" -o "$1" == "--base" ]; then
+elif [ "$1" == "--noscl" -o "$1" == "--base" ]; then
BUILD_SCLS=0
shift
-fi
-if [ "$1" == "--redis" ]; then
- CHECK=$(redis-cli ping)
- [ "$CHECK" = "PONG" ] || exit 1
- REDIS=1
+elif [ "$1" == "--mock" ]; then
+ BUILD_BASE=0
+ BUILD_SCLS=0
+ BUILD_MOCK=1
shift
fi
@@ -34,50 +78,43 @@ shift 2
# PHP version build range
if [ "$1" = "" ]; then
- MIN=0
+ MIN=56
else
MIN=$1
shift
fi
if [ "$1" = "" ]; then
- MAX=99
+ MAX=84
else
MAX=$1
shift
fi
-# ARCH detection and check
-if [ "$(uname -m)" = "x86_64" ]; then
- SUF=x
-else
- SUF=a
-fi
case $DIST in
- *x)
+ *x|*xm|*xr|*xr62|*xr72)
if [ $SUF != x ]; then
echo "Not an x86_64 builder"
exit 1
fi
;;
- *a)
+ *a|*am|*ar|*ar62|*ar72)
if [ $SUF != a ]; then
- echo "Not an aarch64 builder"
- exit 1
+ if [ $REDIS -ge 1 ]; then
+ REMOTE=1
+ else
+ echo "Not an aarch64 builder"
+ exit 1
+ fi
fi
;;
- *)
- DIST=$DIST$SUF
- ;;
esac
# SRPM abolute path
+mockref=/home/rpmbuild/SPECS/remirepo/tools/mock
+mocketc=$mockref
+srpmdir=/home/rpmbuild/site/rpms/SRPMS
case $DIST in
-
- *x)
- mocketc=/home/rpmbuild/SPECS/remirepo/tools/mock
- srpmdir=/home/rpmbuild/site/rpms/SRPMS
- ;;
- *a)
+ *a|*am)
mocketc=/home/remi/mock
srpmdir=/home/remi/SRPMS
;;
@@ -92,28 +129,103 @@ elif [ ! -f $SRPM ]; then
exit 1
fi
+# Send to remote aarch64 builder
+if [ $REMOTE -ge 1 ]; then
+ LST=/tmp/srpm_aarch64_sent.list
+ touch $LST
+ if ! grep -q $SRPM $LST; then
+ scp $SRPM remi@ampere:todo/
+ echo $SRPM >>$LST
+ fi
+ mocketc=/home/remi/mock
+ QUEUE=mocka
+ SRPM=/home/remi/todo/$(basename $SRPM)
+fi
+
# PHP version matrix
echo mockit $SRPM $DIST $MIN $MAX $@
case $DIST in
- fc38x|fc39x|fc39a|fc40x|fc40a|el9x|el9a)
- LST="82 81 74 80 83"
- SCL="74 80 81 82 83"
+ fc42x|fc42a|fc40x|fc40a|fc41x|fc41a|el9x|el9a|el10x|el10a)
+ LST="74 80 81 82 83 84"
+ SCL="74 80 81 82 83 84"
;;
el8a)
- LST="72 73 74 80 81 82 83"
- SCL="72 73 74 80 81 82 83"
+ LST="72 73 74 80 81 82 83 84"
+ SCL="72 73 74 80 81 82 83 84"
;;
el8x)
- LST="72 73 74 80 81 82 83"
- SCL="56 70 71 72 73 74 80 81 82 83"
+ LST="72 73 74 80 81 82 83 84"
+ SCL="56 70 71 72 73 74 80 81 82 83 84"
+ ;;
+ all)
+ if [ $REDIS -ge 1 ]; then
+ for i in fc40x fc41x fc42x el8x el9x el10x fc40a fc41a fc42a el8a el9a el10a
+ do
+ [ $BUILD_BASE -ge 1 ] && $0 --valkey --base $SRPM $i $MIN $MAX $@
+ [ $BUILD_SCLS -ge 1 ] && $0 --valkey --scl $SRPM $i $MIN $MAX $@
+ done
+ else
+ echo Not supported for direct build
+ fi
+ ;;
+ zts)
+ if [ $REDIS -ge 1 ]; then
+ [ $MAX -gt 83 ] && MAX=83
+ for i in fc40x el8x el9x
+ do
+ [ $BUILD_BASE -ge 1 ] && $0 --valkey --base $SRPM $i $MIN $MAX $@
+ done
+ else
+ echo Not supported for direct build
+ fi
+ ;;
+ memcached)
+ if [ $REDIS -ge 1 ]; then
+ for i in fc40xm fc41x fc42x el8x el9xm el10xm fc40am fc41a fc42a el8a el9am el10am
+ do
+ $0 --valkey --mock $SRPM $i $MIN $MAX $@
+ done
+ else
+ echo Not supported for direct build
+ fi
+ ;;
+ im6)
+ if [ $REDIS -ge 1 ]; then
+ for i in fc40x el8xr el9x fc40a el8ar el9a
+ do
+ $0 --valkey --mock $SRPM $i $MIN $MAX $@
+ done
+ else
+ echo Not supported for direct build
+ fi
+ ;;
+ im7)
+ if [ $REDIS -ge 1 ]; then
+ for i in fc40x fc41x fc42x el8xr el9x el10x fc40a fc41a fc42a el8ar el9a el10a
+ do
+ $0 --valkey --mock $SRPM $i $MIN $MAX $@
+ done
+ else
+ echo Not supported for direct build
+ fi
;;
- el7x)
- LST="54 55 56 70 71 72 73 74 80 81 82 83"
- SCL="54 55 56 70 71 72 73 74 80 81 82 83"
+ r*)
+ if [ $REDIS -ge 1 ]; then
+ for i in fc40x el8x el9x fc40a el8a el9a
+ do
+ $0 --valkey --mock $SRPM ${i}${DIST} $MIN $MAX $@
+ done
+ else
+ echo Not supported for direct build
+ fi
;;
*)
- echo Unkown DIST $DIST
- exit 1
+ if [ $BUILD_MOCK -eq 0 -o ! -f ${mockref}/${DIST}.cfg ]; then
+ [ $BUILD_MOCK -eq 0 ] && echo "BUILD_MOCK=0"
+ [ ! -f ${mocketc}/${DIST}.cfg ] && echo "${mockref}/${DIST}.cfg missing"
+ echo Unkown DIST $DIST
+ exit 1
+ fi
;;
esac
@@ -125,7 +237,7 @@ do
if [ 0$i -ge $MIN -a 0$i -le $MAX ]; then
CMD="mock -q --configdir=$mocketc -r ${DIST}${i} rebuild $SRPM $@"
if [ $REDIS -ge 1 ]; then
- redis-cli sadd mock "$CMD"
+ $REDISCLI sadd $QUEUE "$CMD"
else
echo -n "$(date +%X) $i "
$CMD --uniqueext=$ID && echo " Ok." || echo " Error !"
@@ -138,16 +250,21 @@ do
if [ 0$i -ge $MIN -a 0$i -le $MAX ]; then
CMD="mock -q --configdir=$mocketc -r ${DIST}scl${i} rebuild $SRPM $@"
if [ $REDIS -ge 1 ]; then
- redis-cli sadd mock "$CMD"
+ $REDISCLI sadd $QUEUE "$CMD"
else
echo -n "$(date +%X) scl$i "
$CMD --uniqueext=$ID && echo " Ok." || echo " Error !"
fi
fi
done
+# Build using mock config
+if [ $BUILD_MOCK -ge 1 ]; then
+ CMD="mock -q --configdir=$mocketc -r ${DIST} rebuild $SRPM $@"
+ $REDISCLI sadd $QUEUE "$CMD"
+fi
if [ $REDIS -ge 1 ]; then
- echo "Queue size: " $(redis-cli scard mock)
+ echo "Queue size: " $($REDISCLI scard $QUEUE)
else
date +%X
fi