fate: support testing of release branches
authorJanne Grunau <janne-libav@jannau.net>
Sat, 26 Jul 2014 21:29:46 +0000 (23:29 +0200)
committerJanne Grunau <janne-libav@jannau.net>
Sun, 27 Jul 2014 12:41:09 +0000 (14:41 +0200)
Adding 'branch=release/10' to the fate config file will check the
release/10 branch instead of master. If no branch is specified it will
use 'master' so that existing config are still valid.

The server side changes are already deployed, see
https://fate.libav.org/v10/ for an example. The server supports only the
release/* branches.

The server enforces that a single slot tests always the same branch.
Please append "-v$RELEASE" to the slot of release branch configs or make
the slot otherwise unique.

A different fate samples dir is needed for each release branch. make
fate-rsync has the correct URL in each branch.

tests/fate.sh

index 6e0c0c6..af0f6c0 100755 (executable)
@@ -19,6 +19,8 @@ test -n "$slot"    || die "slot not specified"
 test -n "$repo"    || die "repo not specified"
 test -d "$samples" || die "samples location not specified"
 
+: ${branch:=master}
+
 lock(){
     lock=$1/fate.lock
     (set -C; exec >$lock) 2>/dev/null || return
@@ -28,14 +30,14 @@ lock(){
 checkout(){
     case "$repo" in
         file:*|/*) src="${repo#file:}"      ;;
-        git:*)     git clone --quiet "$repo" "$src" ;;
+        git:*)     git clone --quiet --branch "$branch" "$repo" "$src" ;;
     esac
 }
 
 update()(
     cd ${src} || return
     case "$repo" in
-        git:*) git fetch --force; git reset --hard origin/master ;;
+        git:*) git fetch --force; git reset --hard "origin/$branch" ;;
     esac
 )
 
@@ -79,7 +81,7 @@ clean(){
 
 report(){
     date=$(date -u +%Y%m%d%H%M%S)
-    echo "fate:0:${date}:${slot}:${version}:$1:$2:${comment}" >report
+    echo "fate:1:${date}:${slot}:${version}:$1:$2:${branch}:${comment}" >report
     cat ${build}/config.fate ${build}/tests/data/fate/*.rep >>report
     test -n "$fate_recv" && $tar report *.log | gzip | $fate_recv
 }