X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=libguestfs_upstream.ml;h=685c1b59de59f31dc996716ff487b49eba4f308c;hb=5324bda8dbb31613640901bfba9b0dd339bc9616;hp=0d41d336ca6fc87706ff46aaecfbca6af5fcad7d;hpb=834f22b465b0bbe9b43734279c515f76dd9297d9;p=goaljobs-goals.git diff --git a/libguestfs_upstream.ml b/libguestfs_upstream.ml index 0d41d33..685c1b5 100644 --- a/libguestfs_upstream.ml +++ b/libguestfs_upstream.ml @@ -30,16 +30,30 @@ 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); + if version.is_stable then + require (tarball_signed 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. *) @@ -50,7 +64,7 @@ and website_rsync_done version = sh " cd %s ./.rsync - " libguestfs_website_repo + " websites_repo (* Goal: Tarball added to repository and checked in. *) and website_checked_in version = @@ -60,16 +74,24 @@ and website_checked_in version = require (tarball_created version); require (tarball_tested version); + if version.is_stable then + require (tarball_signed version); sh " cd %s cp %s/tarballs/%s %s + if %b; then cp %s/tarballs/%s.sig %s.sig; fi git add %s + cd %s git add *.txt *.html + cd %s git commit -m \"Version %s\" - " libguestfs_website_repo + " libguestfs_download_repo buildtmp version.tarball version.urlpath + version.is_stable buildtmp version.tarball version.urlpath version.urlpath + libguestfs_website_repo + websites_repo version.version (* Goal: website (local copy) has been built. *) @@ -93,12 +115,22 @@ and website_built version = ./localconfigure make V=1 - make maintainer-upload-website WEBSITEDIR=%s + make maintainer-upload-website WEBSITESDIR=%s " buildtmp version.tarball version.package_version (quote (libguestfs_localconfigure `Tarball)) (quote (libguestfs_localenv (supermin version))) - (quote libguestfs_website_repo) + (quote websites_repo) + +(* Goal: for stable versions, the tarball must be signed. *) +and tarball_signed version = + let tar_file = sprintf "%s/tarballs/%s" buildtmp version.tarball in + let sig_file = tar_file ^ ".sig" in + target (file_exists sig_file); + + require (tarball_created version); + + sh "sign-tarball %s" tar_file (* Goal: the tarball has passed the required set of tests before * a release is allowed. @@ -120,7 +152,13 @@ and tarball_tested version = ./localconfigure make V=1 - make check-release + if ! make check-release; then + for f in `find -name test-suite.log | xargs grep -l ^FAIL:`; do + echo \"*** $f ***\" + cat $f + done + exit 1 + fi " buildtmp version.tarball version.package_version (quote (libguestfs_localconfigure `Tarball)) @@ -200,7 +238,13 @@ and commit_tested branch commit = ./localconfigure make V=1 - make check-release + if ! make check-release; then + for f in `find -name test-suite.log | xargs grep -l ^FAIL:`; do + echo \"*** $f ***\" + cat $f + done + exit 1 + fi " repodir commit (quote (libguestfs_localconfigure `Git)) @@ -209,6 +253,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_download_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" (