X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=libguestfs_upstream.ml;h=a3d558fc1c92a43d4ee9682db3e7f06534cacf13;hb=8e4d36a8ec04de7ec2ae22f336708adb537a7e59;hp=4c32dfd75657c9b02a090bb7c2ffb191f2ef20d2;hpb=ff86e5997ace60bf9cb4a70aee7142694474686c;p=goaljobs-goals.git diff --git a/libguestfs_upstream.ml b/libguestfs_upstream.ml index 4c32dfd..a3d558f 100644 --- a/libguestfs_upstream.ml +++ b/libguestfs_upstream.ml @@ -11,6 +11,7 @@ open Goaljobs open Printf open Config +open Libguestfs (* Enable debugging. *) let () = @@ -20,37 +21,13 @@ let () = (* Log program output. *) let from = "rjones@redhat.com" let to_ = "rjones@redhat.com" +(* let logfile = log_program_output () let () = eprintf "logging to %s\n%!" logfile +*) let package = "libguestfs" -(* Helper object which stores everything about a version. *) -type info = { - version : string; (* The version as a normal string. *) - major : int; (* Broken-out version fields. *) - minor : int; - release: int; - is_stable : bool; (* is a stable version of libguestfs? *) - branch : string; (* 'master' or 'stable-1.xx' *) - package_version : string; (* package-version *) - tarball : string; (* package-version.tar.gz *) - urlpath : string; (* download/1.X-(stable|development)/tarball *) - url : string; (* full download URL of tarball *) -} - -(* Helper: Fetch latest gnulib into $buildtmp/repos/gnulib - * XXX Move to Gnulib module. - *) -let get_gnulib () = - sh " - cd %s/repos - if [ ! -d gnulib ]; then git clone git://git.sv.gnu.org/gnulib.git; fi - cd gnulib - git checkout --force master - git pull - " buildtmp - (* Goal: the website has been updated to 'version'. *) let rec goal website_updated version = target (url_exists version.url); @@ -179,7 +156,7 @@ and commit_tested branch commit = onfail ( fun _ -> let subject = sprintf "goal: %s: FAILED" goalname in - mailto ~from ~subject ~attach:[logfile] to_ + mailto ~from ~subject (*~attach:[logfile]*) to_ ); let key = sprintf "libguestfs_commit_tested_%s" commit in @@ -206,77 +183,11 @@ and commit_tested branch commit = (quote (libguestfs_localconfigure `Git)) (quote libguestfs_localenv) -(* Helper function to make a full 'info' object from a version - * number. - *) -let vernames version = - Scanf.sscanf version "%d.%d.%d" ( - fun major minor release -> - let is_stable = minor mod 2 = 0 in - let branch = - if is_stable then - sprintf "stable-%d.%d" major minor - else - sprintf "master" in - let package_version = sprintf "%s-%d.%d.%d" package major minor release in - let tarball = sprintf "%s.tar.gz" package_version in - let urlpath = - if is_stable then - sprintf "download/%d.%d-stable/%s" major minor tarball - else - sprintf "download/%d.%d-development/%s" major minor tarball in - let url = "http://libguestfs.org/" ^ urlpath in - { version = version; - major = major; minor = minor; release = release; - is_stable = is_stable; - branch = branch; - package_version = package_version; - tarball = tarball; - urlpath = urlpath; - url = url } - ) - -(* Helper function to read the latest version in a repo and return - * the version. - *) -let git_latest_version branch = - let v = shout " - cd %s/repos/%s-%s - git describe --tags --abbrev=0 - " buildtmp package (quote branch) in - vernames v - -(* Get the latest commit. *) -let git_latest_commit branch = - shout " - cd %s/repos/%s-%s - git rev-parse HEAD - " buildtmp package (quote branch) - -(* Clone or update a repo to the latest version on a branch, by force. - * It is cached in name = $buildtmp/repos/- - *) -let git_force url branch = - sh " - cd %s/repos - if [ ! -d %s-%s ]; then git clone %s %s-%s; fi - cd %s-%s - git checkout --force %s - git pull - # Copy or update gnulib - git submodule init - git submodule update - " buildtmp - package (quote branch) (quote url) package (quote branch) - package (quote branch) - (quote branch) - let () = (* Add a periodic job to check for new git commits and test them. *) every libguestfs_query_mins minutes ~name:"new libguestfs commit" ( fun () -> - git_force "https://github.com/libguestfs/libguestfs.git" "master"; - + git_force "master"; let commit = git_latest_commit "master" in require (commit_tested "master" commit); ); @@ -284,8 +195,7 @@ let () = (* Periodic job to build new tarballs. *) every libguestfs_query_mins minutes ~name:"new libguestfs version" ( fun () -> - git_force "https://github.com/libguestfs/libguestfs.git" "master"; - + git_force "master"; let version = git_latest_version "master" in require (website_updated version) )