[Libreoffice-commits] 6 commits - tb/config-sample tb/tb tb/tb_internals.sh

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Mon Feb 25 18:10:30 PST 2013


 tb/config-sample/config                                               |   51 +++++++++
 tb/config-sample/profiles/tb99/branches/master/autogen.lastrun_gerrit |    1 
 tb/config-sample/profiles/tb99/branches/master/autogen.lastrun_tb     |    1 
 tb/config-sample/profiles/tb99/branches/master/config_gerrit          |    3 
 tb/config-sample/profiles/tb99/branches/master/config_tb              |    4 
 tb/config-sample/profiles/tb99/config                                 |   11 ++
 tb/tb                                                                 |   18 ++-
 tb/tb_internals.sh                                                    |   55 ++++++++--
 8 files changed, 131 insertions(+), 13 deletions(-)

New commits:
commit d4d06af9207ad6c323d72ef20892597fb168d14f
Author: Norbert Thiebaud <nthiebaud at gmail.com>
Date:   Mon Feb 25 20:09:51 2013 -0600

    tb: add config template

diff --git a/tb/config-sample/config b/tb/config-sample/config
new file mode 100644
index 0000000..0bdd69d
--- /dev/null
+++ b/tb/config-sample/config
@@ -0,0 +1,51 @@
+
+# name of your tinderbox
+# see see http://wiki/documentfoundation.org/Development/Tinderbox
+# for naming convention
+# Note: @99 below is the tinderbox id. in oder to do gerrit
+# build you _must_ obtain a BuilbBot user assocaited with that id
+# see your friendly gerrit admin.
+TB_NAME="Linux_x86_64 at 99-Template-Description"
+
+# this is the time the tb will go to sleep in case there is nothing to build (in seconds)
+TB_POOL_DELAY=120
+
+# this is the time tb will go to sleep after each build attempt (in seconds)
+TB_POST_BUILD_DELAY=15
+
+# location where tb will put the metadata used to follow the state of a 'branche'
+# this contain work file that folow the last checkout point,
+# the last success point etc...
+# these are small files, with overall low activity, so there is no particular requirement
+# but they need to persist, so do not put them in /tmp or any other
+# place that won't survive a reboot
+TB_METADATA_DIR=~/.tb/meta
+
+# default email mode when doing a tb build
+# while debugggin your set-up you probably want =owner or =none here
+TB_SEND_MAIL=all
+
+# default profile
+# tb always run based on a given 'profile'
+# this is specified onthe command line by -p <profile>
+# this provide a default value in case the information
+# is absenct from the command line
+# on an establish tinderbox, it would be expected than
+# running just 'tb' without argument would run the predefined setup
+# a convinient name for the default profile is tb<id> where id is
+# the id assigned to your box
+TB_DEFAULT_PROFILE=tb99
+
+# if you are doing tb build, we need a SMTP server
+# to send email to the tinderbox server, to post
+# the build result
+# and we need a user/passwd.
+# if your smtp does not need credentials
+# then you can omit both user and passwrd
+TB_SMTP_HOST=smtp.gamil.com
+TB_SMTP_USER=john.doe
+TB_SMTP_PASSWORD=password
+
+# if you are building on a recent Mac (with llvm-based compiler) and you want to
+# use ccache, you need to put the export below, or it won't build.
+# export CCACHE_CPP2=yes
diff --git a/tb/config-sample/profiles/tb99/branches/master/autogen.lastrun_gerrit b/tb/config-sample/profiles/tb99/branches/master/autogen.lastrun_gerrit
new file mode 100644
index 0000000..8c6b4f8
--- /dev/null
+++ b/tb/config-sample/profiles/tb99/branches/master/autogen.lastrun_gerrit
@@ -0,0 +1 @@
+--disable-dependency-tracking
diff --git a/tb/config-sample/profiles/tb99/branches/master/autogen.lastrun_tb b/tb/config-sample/profiles/tb99/branches/master/autogen.lastrun_tb
new file mode 100644
index 0000000..51c8615
--- /dev/null
+++ b/tb/config-sample/profiles/tb99/branches/master/autogen.lastrun_tb
@@ -0,0 +1 @@
+--disable-ccache
diff --git a/tb/config-sample/profiles/tb99/branches/master/config_gerrit b/tb/config-sample/profiles/tb99/branches/master/config_gerrit
new file mode 100644
index 0000000..ccda286
--- /dev/null
+++ b/tb/config-sample/profiles/tb99/branches/master/config_gerrit
@@ -0,0 +1,3 @@
+
+#
+TB_GIT_DIR=~/lo/core_gerrit
diff --git a/tb/config-sample/profiles/tb99/branches/master/config_tb b/tb/config-sample/profiles/tb99/branches/master/config_tb
new file mode 100644
index 0000000..306d2b8
--- /dev/null
+++ b/tb/config-sample/profiles/tb99/branches/master/config_tb
@@ -0,0 +1,4 @@
+
+TB_TINDERBOX_BRANCH=MASTER
+TB_GIT_DIR=~/lo/master_tb
+TB_INCREMENTAL=1
diff --git a/tb/config-sample/profiles/tb99/config b/tb/config-sample/profiles/tb99/config
new file mode 100644
index 0000000..57ecc8c
--- /dev/null
+++ b/tb/config-sample/profiles/tb99/config
@@ -0,0 +1,11 @@
+# Profile Level configuration
+#
+# Gerrit host
+# for gerrit related operation.
+# It is easier to just define an alias
+# in ~/.ssh
+# Here we define d gerrit_tb99 as an alias
+# for tb99 at gerrit.libreoffice.org on the right port
+# with the right identity.
+TB_GERRIT_HOST=gerrit_tb99
+
commit 1e2a9d118a035762c32d5546a651a83f154e9663
Author: Norbert Thiebaud <nthiebaud at gmail.com>
Date:   Mon Feb 25 20:09:22 2013 -0600

    tb: add a way to explicitly restrict a mode for a given branch

diff --git a/tb/tb b/tb/tb
index 97afd79..84e0d32 100755
--- a/tb/tb
+++ b/tb/tb
@@ -142,6 +142,8 @@ TB_BRANCH_LOCAL_REFSPEC=<ref> Name of the branche in the local repo
                               Default to the name of the branch in the configuration
                               This is a B-level only paramter
                               This is a tb-mode only paramter. This is ingored in gerrit mode
+TB_BRANCH_MODE=(gerrit|tb|both) Restrict the branch to gerrit build or tb build or both (default)
+                                This is a B-level only parameter
 TB_BRANCH_REMOTE_REFSPEC=<ref> Name of the branch on the remote repo.
                                Default to the name of the branch in the configuration
                                This is a B-level only paramter
diff --git a/tb/tb_internals.sh b/tb/tb_internals.sh
index 07cf6fd..2e5090e 100644
--- a/tb/tb_internals.sh
+++ b/tb/tb_internals.sh
@@ -208,6 +208,13 @@ check_branch_profile_gerrit()
 
     source_branch_level_config "${b?}" "gerrit"
 
+    # if we intented that branch to be tb only let's bail-out early
+    if [ "$TB_BRANCH_MODE" = "tb" ] ; then
+        exit -1;
+    fi
+
+    check_branch_profile_common
+
     # if CCACHE_DIR is set it has been set by the branch's profile
     # if TB_CCACHE_SIZE is set make sure the cache is as big as specified
     # note: no need to restore the old CCACHE value
@@ -237,6 +244,13 @@ check_branch_profile_tb()
 
     source_branch_level_config "${b?}" "tb"
 
+    # if we intented that branch to be gerrit only let's bail-out early
+    if [ "$TB_BRANCH_MODE" = "gerrit" ] ; then
+        exit -1;
+    fi
+
+    check_branch_profile_common
+
     if [ -z "${TB_TINDERBOX_BRANCH}" ] ; then
         TB_TINDERBOX_BRANCH=$(determine_default_tinderbox_branch "${b?}")
         # FIXME: determine if we can derive that value
commit 8f68409eecb64ae6eadf8ae796336e303849aba1
Author: Norbert Thiebaud <nthiebaud at gmail.com>
Date:   Mon Feb 25 20:08:42 2013 -0600

    tb: source per branch phases.sh if exist

diff --git a/tb/tb b/tb/tb
index b8fe624..97afd79 100755
--- a/tb/tb
+++ b/tb/tb
@@ -159,7 +159,7 @@ TB_DEFAULT_PROFILE=<profile_name> Default profile name.
                                   This is a G level only parameter
                                   This provide a default value in case -p <prifle> is not
                                   present on the command line, but is required.
-TB_GERRIT_HOST<host> Gerrit host to contact in gerrit mode.
+TB_GERRIT_HOST=<host> Gerrit host to contact in gerrit mode.
                      This parameter is mandatory to use a gerrit mode.
                      This is G or P-level parameter only
 TB_GIT_DIR=<path> Location of the libreoffice core git repo to use for a build.
@@ -205,7 +205,7 @@ TB_SMTP_PASSWORD=<password> Password associated with TB_SMTP_USER.
                             This paramter is mandatory if TB_SMTP_USER is specified
 TB_SMTP_USER=<username> Username to login to the smtp server.
                         If your smtp server does not require authotification, you can omit this.
-TB_TINDERBOX_BRANCH=<name> Name associated witha  branch on the tibderbox server.
+TB_TINDERBOX_BRANCH=<name> Name associated with a  branch on the tinderbox server.
                            The tinderbox server need to have a branch name assocaited with any
                            build repport. the server only recognize a preset list of such name
                            and they do not necessarely match you local branch name.
diff --git a/tb/tb_internals.sh b/tb/tb_internals.sh
index b857d45..07cf6fd 100644
--- a/tb/tb_internals.sh
+++ b/tb/tb_internals.sh
@@ -73,6 +73,9 @@
 #       /profiles/<profile_name>/branches/<branch_name>/config_gerrit
 #       /profiles/<profile_name>/branches/<branch_name>/config_tb
 #       /profiles/<profile_name>/branches/<branch_name>/false_negatives
+#       /profiles/<profile_name>/branches/<branch_name>/phase.sh
+#       /profiles/<profile_name>/branches/<branch_name>/phase_gerrit.sh
+#       /profiles/<profile_name>/branches/<branch_name>/phase_tb.sh
 #       /profiles/<profile_name>/config
 #       /profiles/<profile_name>/false_negatives
 #       /profiles/<profile_name>/phases.sh
@@ -1540,6 +1543,12 @@ source_branch_level_config()
     if [ -z "${TB_TINDERBOX_BRANCH}" ] ; then
         TB_TINDERBOX_BRANCH=$(determine_default_tinderbox_branch "${b?}")
     fi
+    if [ -f "${tb_PROFILE_DIR?}/branches/${b?}/phase.sh" ] ; then
+        source "${tb_PROFILE_DIR?}/branches/${B?}/phase.sh"
+    fi
+    if [ -f "${tb_PROFILE_DIR?}/branches/${b?}/phase_${t?}.sh" ] ; then
+        source "${tb_PROFILE_DIR?}/branches/${b?}/phase_${t?}.sh"
+    fi
 }
 
 #
commit a829ae6e24f132e6e05d5a3230509bca8fc75180
Author: Norbert Thiebaud <nthiebaud at gmail.com>
Date:   Mon Feb 25 20:08:08 2013 -0600

    TB_ID is not used anymore

diff --git a/tb/tb_internals.sh b/tb/tb_internals.sh
index da8dd71..b857d45 100644
--- a/tb/tb_internals.sh
+++ b/tb/tb_internals.sh
@@ -1485,10 +1485,6 @@ setup_profile_defaults()
         mkdir -p "${TB_METADATA_DIR?}" || die "Creating ${TB_METADATA_DIR?}"
     fi
 
-    if [ -z "$TB_ID" ] ; then
-        die "Error: TB_ID is required to be configured"
-    fi
-
     if [ -z "${TB_OWNER}" ] ; then
         die "Error: TB_OWNER is required to be configured"
     fi
commit 1947d510b7f3d49ae5f961ca3af3695d935727b0
Author: Norbert Thiebaud <nthiebaud at gmail.com>
Date:   Mon Feb 25 19:23:33 2013 -0600

    tb: added support for external trigger files

diff --git a/tb/tb b/tb/tb
index 3665faa..b8fe624 100755
--- a/tb/tb
+++ b/tb/tb
@@ -205,11 +205,21 @@ TB_SMTP_PASSWORD=<password> Password associated with TB_SMTP_USER.
                             This paramter is mandatory if TB_SMTP_USER is specified
 TB_SMTP_USER=<username> Username to login to the smtp server.
                         If your smtp server does not require authotification, you can omit this.
-TB_TINDERBOX_BRANCH=<name> Name assocaited witha  branch on the tibderbox server.
+TB_TINDERBOX_BRANCH=<name> Name associated witha  branch on the tibderbox server.
                            The tinderbox server need to have a branch name assocaited with any
                            build repport. the server only recognize a preset list of such name
                            and they do not necessarely match you local branch name.
                            This is a tb-mode only paramter. This is ignored in gerrit mode
+TB_TRIGGER_FILE=<absolute_filename> This is the location of a 'trigger' file.
+                                    If specified the existance of that file will be
+                                    tested, and a build for the assocaited branch
+                                    will not be run unless the file exist
+                                    at the end of a successfull build, the trigger
+                                    file is removed by tb.
+                                    This allow to trigger some build at periodic time with a cron
+                                    For instance you could have a cron that touch a trigger file
+                                    weekly to trigger a full localized build.
+                                    This is a tb-mode only parameter. This is ignored in gerrit mode
 
 In general, when a command line argument influence on of the paramter listed
 above, it can only override a G-level specification. P-level take, for the most
diff --git a/tb/tb_internals.sh b/tb/tb_internals.sh
index fc8c9c7..da8dd71 100644
--- a/tb/tb_internals.sh
+++ b/tb/tb_internals.sh
@@ -86,6 +86,7 @@
 # tb_BRANCHES :
 # tb_BRANCH_AUTHOR :
 # tb_BUILD_COMMIT :
+# tb_BUILD_TRIGGERED : "1" if the build was controlled by a trigger file
 # tb_BUILD_TYPE :
 # tb_CONFIG_DIR :
 # tb_GERRIT_BRANCHES :
@@ -345,7 +346,7 @@ check_for_commit()
                 r=0
             else
                 [ $V ] && echo "No New commit for tb-branch ${b?}"
-                r=1
+                r=2
             fi
         else
             log_msgs "Git error while checking for commit on ${TB_GIT_REPO?} for branch ${b?}"
@@ -355,6 +356,15 @@ check_for_commit()
         fi
     fi
     [ $V ] && echo "pulling from the repo ${TB_GIT_REPO?} for branch ${b?} -> r=${r?}"
+    if [ "${r?}" = "0" ] ; then
+        if [ -n "${TB_TRIGGER_FILE}" -a -f "${TB_TRIGGER_FILE}" ] ; then
+            r=1
+            [ $V ] && echo "Trigger file ${TB_TRIGGER_FILE} detected for branch ${b?} -> r=${r?}"
+        else
+            r=3
+            [ $V ] && echo "Trigger file ${TB_TRIGGER_FILE} missing for branch ${b?} -> r=${r?}"
+        fi
+    fi
     exit ${r?}
 }
 
@@ -714,12 +724,14 @@ prepare_git_repo_for_tb()
     local refspec=
     local remote_refspec=
 
+    # by default the local branch name is the 'branch' name for the profile
     refspec="${B?}"
     if [ -n "${TB_BRANCH_LOCAL_REFSPEC}" ] ; then
         refspec="${TB_BRANCH_LOCAL_REFSPEC?}"
     fi
 
-    remote_refspec="${B?}"
+    # by default the remote branch name is identical to the local one with origin/ in front
+    remote_refspec="origin/${refspec?}"
     if [ -n "${TB_BRANCH_REMOTE_REFSPEC}" ] ; then
         remote_refspec="${TB_BRANCH_REMOTE_REFSPEC?}"
     fi
@@ -1226,11 +1238,11 @@ run_one_tb()
 
             do_build ${phase_list?}
 
-            if [ "$R" = "0" ] ; then
+            if [ "${R?}" = "0" ] ; then
                 report_to_tinderbox "${tb_LAST_CHECKOUT_DATE}" "success" "yes"
                 phase_list=
                 log_msgs "Successful tb build for sha:$(cat "${TB_METADATA_DIR?}/${P}_${B?}_current-git-head.log")"
-            elif [ "$R" = "2" ] ; then
+            elif [ "${R?}" = "2" ] ; then
                 log_msgs "False negative build, skip reporting"
                     # false negative does not need a full clean build, let's just redo make and after
                 retry_count=$((retry_count - 1))
@@ -1263,7 +1275,10 @@ run_one_tb()
         tb_LAST_CHECKOUT_DATE=
         rotate_logs
         popd > /dev/null
-        exit $R
+        if [ "${R?}" = "0" -a "${tb_BUILD_TRIGERRED?}" = "1" ] ; then
+            rm -f "${TB_TRIGGER_FILE?}"
+        fi
+        exit ${R?}
     )
     R="$?"
 
@@ -1386,10 +1401,11 @@ select_next_tb_task()
         else
             ( check_for_commit "$b" )
             r="$?"
-            if [ ${r?} = 0 ] ; then
+            if [ ${r?} = 0 -o ${r?} = 1 ] ; then
                 B="${b?}"
                 tb_TB_BRANCHES=$(rotate_branches ${tb_TB_BRANCHES?})
                 tb_BUILD_TYPE="tb"
+                tb_BUILD_TRIGGERED="${r?}"
                 break
             fi
         fi
commit 461dc69198299f828fbf004ef73c73baf9f0223a
Author: Norbert Thiebaud <nthiebaud at gmail.com>
Date:   Mon Feb 25 19:23:13 2013 -0600

    tb: no argument does not means --help anymore

diff --git a/tb/tb b/tb/tb
index 683c062..3665faa 100755
--- a/tb/tb
+++ b/tb/tb
@@ -233,7 +233,7 @@ EOF
 #
 
 case "$1" in
-    ""|help|--help)
+    help|--help)
         do_help "$@"
         exit $?
         ;;


More information about the Libreoffice-commits mailing list