summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xmockit91
-rwxr-xr-xmockrun20
2 files changed, 84 insertions, 27 deletions
diff --git a/mockit b/mockit
index b99ed6a..ade3b54 100755
--- a/mockit
+++ b/mockit
@@ -2,9 +2,10 @@
if [ "$2" = "" ]; then
echo -e "\nusage: $0 [ options ] SRPM distro [ min_ver [, max_ver [, mock_options ]]]\n"
+ echo -e "\t--redis store build command in redis queue"
+ echo -e "\t--list list queue content"
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--noscl | --base only build base packages\n"
exit 0
fi
@@ -12,22 +13,47 @@ fi
BUILD_BASE=1
BUILD_SCLS=1
REDIS=0
+REMOTE=0
-if [ "$1" == "--nobase" -o "$1" == "--scl" ]; then
- BUILD_BASE=0
- shift
-fi
-if [ "$1" == "--noscl" -o "$1" == "--base" ]; then
- BUILD_SCLS=0
- shift
+# ARCH detection and check
+if [ "$(uname -m)" = "x86_64" ]; then
+ SUF=x
+ QUEUE=mockx
+ REDISCLI="redis-cli"
+else
+ SUF=a
+ QUEUE=mocka
+ REDISCLI="redis-cli -h remi"
fi
+
if [ "$1" == "--redis" ]; then
- CHECK=$(redis-cli ping)
+ CHECK=$($REDISCLI ping)
[ "$CHECK" = "PONG" ] || exit 1
REDIS=1
shift
fi
+# Queue commands
+if [ "$1" == "--list" ]; then
+ echo "-- x86_64 queue --"
+ $REDISCLI smembers mockx
+ echo "-- aarch64 queue --"
+ $REDISCLI smembers mocka
+ 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
+elif [ "$1" == "--noscl" -o "$1" == "--base" ]; then
+ BUILD_SCLS=0
+ shift
+fi
+
SRPM=$1
DIST=$2
shift 2
@@ -46,12 +72,6 @@ else
shift
fi
-# ARCH detection and check
-if [ "$(uname -m)" = "x86_64" ]; then
- SUF=x
-else
- SUF=a
-fi
case $DIST in
*x)
if [ $SUF != x ]; then
@@ -61,8 +81,12 @@ case $DIST in
;;
*a)
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
;;
*)
@@ -72,7 +96,6 @@ esac
# SRPM abolute path
case $DIST in
-
*x)
mocketc=/home/rpmbuild/SPECS/remirepo/tools/mock
srpmdir=/home/rpmbuild/site/rpms/SRPMS
@@ -92,6 +115,19 @@ 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
@@ -111,6 +147,17 @@ case $DIST in
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"
;;
+ allx)
+ if [ $REDIS -ge 1 ]; then
+ for i in fc38x fc39x fc40x el7x el8x el9x fc39a fc40a el8a el9a
+ do
+ [ $BUILD_BASE -ge 1 ] && $0 --redis --base $SRPM $i $MIN $MAX $@
+ [ $BUILD_SCLS -ge 1 ] && $0 --redis --scl $SRPM $i $MIN $MAX $@
+ done
+ else
+ echo Not support for direct build
+ fi
+ ;;
*)
echo Unkown DIST $DIST
exit 1
@@ -125,7 +172,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,7 +185,7 @@ 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 !"
@@ -147,7 +194,7 @@ do
done
if [ $REDIS -ge 1 ]; then
- echo "Queue size: " $(redis-cli scard mock)
+ echo "Queue size: " $($REDISCLI scard $QUEUE)
else
date +%X
fi
diff --git a/mockrun b/mockrun
index 7f4a935..4554626 100755
--- a/mockrun
+++ b/mockrun
@@ -1,6 +1,15 @@
#!/bin/bash
-CHECK=$(redis-cli ping)
+# ARCH detection and check
+if [ "$(uname -m)" = "x86_64" ]; then
+ QUEUE=mockx
+ REDISCLI="redis-cli"
+else
+ QUEUE=mocka
+ REDISCLI="redis-cli -h remi"
+fi
+
+CHECK=$($REDISCLI ping)
[ "$CHECK" = "PONG" ] || exit 1
if [ "$1" = "-h" -o "$1" = "--help" ]; then
@@ -12,17 +21,17 @@ if [ "$1" = "-h" -o "$1" = "--help" ]; then
exit 0
elif [ "$1" = "-l" -o "$1" = "--list" ]; then
- redis-cli smembers mock
+ $REDISCLI smembers $QUEUE
exit 0
elif [ "$1" = "-e" -o "$1" = "--erase" ]; then
- redis-cli del mock
+ $REDISCLI del $QUEUE
exit 0
fi
while true
do
- CMD=$(redis-cli spop mock)
+ CMD=$($REDISCLI spop $QUEUE)
if [ -z "$CMD" ]; then
if [ "$1" = "-p" -o "$1" = "--perm" ]; then
echo -n .
@@ -33,7 +42,8 @@ do
fi
fi
TXT="$(echo $CMD | sed -e 's/^.*-r //;s/ .*$//') "
- echo -en "\r$(date +%X) ${TXT:0:10}"
+ RPM="$(echo $CMD | sed -e 's:\.rpm.*$:.rpm:;s:^.*/::')"
+ echo -en "\r$(date +%X) $RPM ${TXT:0:10}"
$CMD --uniqueext=$PPID && echo " Ok." || echo " Error !"
done