Added build.ignore_commits option.
authorStanislaw Klekot <dozzie@jarowit.net>
Tue, 30 Aug 2011 22:09:41 +0000 (00:09 +0200)
committerStanislaw Klekot <dozzie@jarowit.net>
Fri, 2 Sep 2011 14:15:07 +0000 (16:15 +0200)
It's main use is when two (or more) crobuilder instances write to the same
destination repository -- which is a sub-repo of source -- and their writes
don't interfere.

Thanks to this, one can skip mentioning one instance's commits in the other
instance's commit messages.

cronbuilder
sample-env/cronbuilder.yaml

index c6650db..d9cf00d 100755 (executable)
@@ -219,9 +219,18 @@ if ($build_status != 0) {
 
 my $additional_comment;
 if (defined $last_build) {
-  # from oldest to newest
+  # from oldest to newest, killing possible commits from cronbuilder itself
+  # (possible if DEST is a sub-repo of SRC)
   my @past_builds = grep { not $src->is_instance_prefix($_->{short_descr}) }
                       reverse $src->log(since => $last_build);
+
+  # kill specified ignore_commits, if any
+  if (defined $config{build}{ignore_commits} &&
+      $config{build}{ignore_commits} ne '') {
+    my $re = qr/$config{build}{ignore_commits}/;
+    @past_builds = grep { $_->{short_descr} !~ /$re/ } @past_builds;
+  }
+
   if (@past_builds == 0) {
     $additional_comment = "No changes in sources.";
   } else {
index 05e945b..5708d42 100644 (file)
@@ -40,3 +40,9 @@ build:
   # "cronbuilder" if empty, and no need to set this unless you want to run
   # several cronbuilders on the same destination repository
   #prefix: cronbuilder
+
+  # regexp (PCRE) that specifies which short-descs of commits should not
+  # appear in this instance's commit message and e-mail
+  # you don't need this unless you have multiple cronbuilder instances saving
+  # stuff in the same destination repository, which is a sub-repo of source
+  #ignore_commits: "^\[cronbuilder-\S+\]"