Deos Build for DDS Deos2Wise
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:
- 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)
- 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)
- 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.
- 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:
- 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*\.
- 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
- Remote desktop into deostower.ddci.com.
- Open a 'DESK Console' (bash based not cmd based)
$ 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.