From: Richard W.M. Jones Date: Tue, 12 Jul 2016 10:00:59 +0000 (+0100) Subject: Add rules for creating python sdist for stable branches. X-Git-Url: http://git.annexia.org/?a=commitdiff_plain;h=6cf22731e0f8f5ceba442b0b7c50faa3589970eb;p=goaljobs-goals.git Add rules for creating python sdist for stable branches. --- diff --git a/libguestfs.ml b/libguestfs.ml index 508cbeb..48da3ea 100644 --- a/libguestfs.ml +++ b/libguestfs.ml @@ -19,8 +19,11 @@ type info = { branch : string; (* 'master' or 'stable-1.xx' *) package_version : string; (* package-version *) tarball : string; (* package-version.tar.gz *) + python_tarball : string; (* guestfs-version.tar.gz *) urlpath : string; (* download/1.X-(stable|development)/tarball *) + python_urlpath : string; (* download/python/python_tarball *) url : string; (* full download URL of tarball *) + python_url : string; (* python sdist *) } let compare_versions { major = major1; minor = minor1; release = release1 } @@ -49,14 +52,22 @@ let vernames version = else sprintf "download/%d.%d-development/%s" major minor tarball in let url = "http://libguestfs.org/" ^ urlpath in + let python_tarball = + sprintf "guestfs-%d.%d.%d.tar.gz" major minor release in + let python_urlpath = sprintf "download/python/" ^ python_tarball in + let python_url = "http://libguestfs.org/" ^ python_urlpath in + { version = version; major = major; minor = minor; release = release; is_stable = is_stable; branch = branch; package_version = package_version; tarball = tarball; + python_tarball = python_tarball; urlpath = urlpath; - url = url } + python_urlpath = python_urlpath; + url = url; + python_url = python_url } ) (* For libguestfs <= 1.24, we need an old supermin 4 binary. *) diff --git a/libguestfs_upstream.ml b/libguestfs_upstream.ml index 0d41d33..5b86e04 100644 --- a/libguestfs_upstream.ml +++ b/libguestfs_upstream.ml @@ -30,16 +30,28 @@ let package = "libguestfs" (* Goal: the website has been updated to 'version'. *) let rec goal website_updated version = - target (url_exists version.url); + target (url_exists version.url && + (if version.is_stable then + url_exists version.python_url + else true) + ); require (tarball_created version); require (tarball_tested version); + (* Python sdists only generated for stable releases. *) + if version.is_stable then ( + require (python_tarball_created version); + require (python_tarball_tested version) + ); + (* We only update the website for the development releases. *) if not version.is_stable then require (website_built version); require (website_checked_in version); + if version.is_stable then + require (python_website_checked_in version); require (website_rsync_done version) (* Goal: website has been rsync'd. *) @@ -209,6 +221,62 @@ and commit_tested branch commit = and repo_up_to_date branch = git_force branch +(* Goals for Python sdists. *) +and python_website_checked_in version = + let key = sprintf "libguestfs_python_website_checked_in_%s" version.version in + target (memory_exists key); + onrun (fun () -> memory_set key "1"); + + require (python_tarball_created version); + require (python_tarball_tested version); + + sh " + cd %s + cp %s/tarballs/%s %s + git add %s + git commit -m \"Python sdist version %s\" + " libguestfs_website_repo + buildtmp version.python_tarball version.python_urlpath + version.python_urlpath + version.version + +and python_tarball_tested version = + let key = sprintf "libguestfs_python_tarball_tested_%s" version.version in + target (memory_exists key); + onrun (fun () -> memory_set key "1"); + + require (python_tarball_created version); + + sh " + virtualenv venv + source ./venv/bin/activate + pip install %s/tarballs/%s + " buildtmp version.python_tarball + +and python_tarball_created version = + let filename = sprintf "%s/tarballs/%s" buildtmp version.python_tarball in + target (file_exists filename); + + require (tarball_created version); + + sh " + tar zxf %s/tarballs/%s + cd %s + + echo %s > localconfigure + chmod +x localconfigure + echo %s > localenv + + ./localconfigure + make V=1 + make -C python sdist + cp python/dist/%s %s + " buildtmp version.tarball + version.package_version + (quote (libguestfs_localconfigure `Tarball)) + (quote (libguestfs_localenv (supermin version))) + version.python_tarball filename + let () = (* Add a periodic job to check for new git commits and test them. *) every libguestfs_query_mins minutes ~name:"new libguestfs commit" (