Deos Build for DDS Deos2Wise

From DDCIDeos
Jump to navigationJump to search

THIS PAGE IS OBSOLETE

Overview

deos2wise is the python script that generates the setupDeos.exe that is placed in the DDS installer. It goes out to the Deos ftp server (ftp://redhat5.ddci.com/deos-products/) collects all of the stable, latest-verified, and .unreleased components extracts them and runs a wise script over the extracted files to generate an install executable. It currently generates 4 possible executables:

  1. deos_latest-[year]-[month]-[day]-r[n].exe: Non-eval version of .unreleased, stable and latest-verified components. .unreleased versions are prioritized over stable versions which are prioritized over latest-verified versions (i.e. if a .unreleased version of a component exists it will be used, if not the stable version is used, it that does not exist the latest-verified version will be used)
  2. deos_latest-eval-[year]-[month]-[day]-r[n].exe: Just like deos_latest-[year]-[month]-[day]-r[n].exe except it will pick up the eval versions of components that have them (currently only the kernel)
  3. deos_latest_released-[year]-[month]-[day]-r[n].exe: Non-eval version of stable and latest-verified components. Stable versions of components are prioritized over latest-verified versions.
  4. deos_latest_released-eval-[year]-[month]-[day]-r[n].exe: Just like deos_latest_released-[year]-[month]-[day]-r[n].exe except it will pick up the eval versions of components that have them

There is code in place to build a deos_latest_verified* that prioritizes latest-verified versions over stable but that has been commented out for now (there is currently no need and it was adding time to the build).

deos2wise has two key features that should help shorten the time to discover build issues:

  1. Automatically publish deos_lates_released-[year]-[month]-[day]-r[n].exe and deos_latest_released-eval-[year]-[month]-[day]-r[n].exe (renaming to deosSetup.exe and deosSetupEval.exe) to \\Scorebuild\DDCI_integration\Deos\Deos_*.Build*\.
  2. Provide a difference of the changes to the files going into the setupDeos.exe and setupDeosEval.exe. The deos2wise script extracts all of the zip files indicated by the package2wise sub scripts then it performs a difference of all the extracted files and collects the results in a single html file. For text files a visual side-by-side difference is provided, for binary files (binary files are detected by looking for the presence of a NUL (0) character in the file) it simply indicates they are different (if it would be valuable to have the integrity key of the different binary files in the report let me know, I think this would be trivial to add). The difference file will be located in \\Scorebuild\DDCI_integration\Deos\Deos_*.Build\ with the name diffBuild#-#.htm. The second number in the name should match the build number and the first number is the build number the difference was against.

All published setupDeos builds should only be done from deostower (to maximize the value of the difference file). The --upload (-u) option should be used to publish the build. The difference file is between the current build and the last build that used '-u' option to automatically update the \\Scorebuild\DDCI_integration\Deos\Deos_*.Build*. If you want to perform a test build (perhaps you have just added or modified some package2wise script or you .unreleased something) you can do so on deostower (for remote developers this reduces the build time over using your PC by more than 30 min), without out mucking up the difference files, just don't specify the -u switch until you are ready to do the published build.

How-to Build

$ cd /cygdrive/c/scm/Deos/maintainer-tools/windows/deos2wise
$ chmod -R ugo+rw * 

Note: chmod is necessary due to multiple users of the same local SVN tree

$ svn up

To do a test build (takes 2-5 min):

$ ./deos2wise.py &> deos2wise.log

To do a published build (takes 5-10 min)

$ ./deos2wise.py -u &> deos2wise.log

Deos2Wise Help

Syntax:  deos2wise.py [-h] [-a] [-c] [-r] [-u]
A script to extract built zip files and combine them into an install exe
built with wise.

 -h, --help      Show this help
 -a, --cleanAll  Clean out all temporary files.  This will force a rebuild of
                 all install exe's the next time the tool is run.
 -c, --clean     Clean out most temporary files (leaves around the files used
                 to determine if an install exe needs to be rebuilt.  This is
                 useful after a runtime error has occurred and you want to
                 cleanup the old files before trying again.
 -r, --rebuild   Rebuild using the previously fetched and extracted files.
 -u, --upload    Upload the the result of the build to the dds build server.
                 Note: if uploading is not done the "last" build data will
                 not be updated which will cause a rebuild every time.