Build a 64bit DDS
Here are the steps to accomplish a 64-bit DDS build:
- Reserve the ddsbuild machine on x9
- Use Microsoft's Remote Desktop to logon to the ddsbuild machine (username: scoretest, password: scteorste1, domain DDCI)
The Customer Information File
The customer information file is located at C:\DDCI_integration\DDS\customer_info.json and is used by the build scripts. The format of this file is in json syntax.
- Confirm the information for a customer is correct. This information doesn't change often.
- Update the Customer Information File (customer_info.json) - this is usually a one time thing to add a new customer or if this is the first DDS with verified components to be delivered to the customer, ensure that the customer_info.json specifies "verified" : "yes" for this customer.
- Remember to commit the customer_info.json file using the appropriate PCR.
Below is a portion of the customer information file with comments providing documentation for the contents:
###########################################
# Sample Customer Entry
#
# 1) the customer package name (ie. "customer-booyah"
# 2) the distribution that should be used (i.e., the 'distribution' line)
# 3) whether this customer receives verified components. Note: This should be set to yes when delivering verified versions
# of the standard components, even if the customer specific BSP has not completed verification.
# 4) The description of the customer program (i.e., the 'desc' line) This is used when producing the cover letter
#
#
# "customer-booyah" : {
# "distribution": "indie",
# "cygwin" : "cygwin-20180401",
# "verified" : "no",
# "desc" : "Multicore for AGM3 Project"
# }
Building a Cygwin DDS
- Run c:\cygwindds\cygwin.bat to launch a Cygwin Terminal (Note: the "populateDDS cygwin2024 64bit" shortcut can be used to accomplish this).
- Make sure the English keyboard is being used by the shell.
- cd /cygdrive/c/DDCI_integration/DDS.
- svn up to ensure the latest updates to the scripts are being used.
- Run the cygwin-populateDDS.py script passing in a customer name, for example:
cd /cygdrive/c/DDCI_integration/DDS ./cygwin-populateDDS.py customer-granite --progress
To see all options accepted by cygwin-populateDDS.py invoke with the --help option. NOTE:--ubuntu should not be used.
Building a Linux DDS
Login to docker (one time operation for DDSBUILD)
Start a cmd shell (e.g. DESK Console)
bash -i
docker login redhat5.ddci.com -u scoretest@ddci.com
- Start a Command Prompt
- Make sure the English keyboard is being used by the shell
- C:\User\scoretest>wsl -d ubuntu
- scoretest@DDSBUILD:/mnt/Users/scoretest$cd ../../DDCI_integration/DDS
- scoretest@DDSBUILD:/mnt/c/DDCI_integration/DDS$svn up
Updating '.':
Authentication realm: <https://deos.ddci.com:443> DDC-I, Inc. Realm
Password for 'scoretest@ddci.com': **********
Password can be found at the top of this wiki
- Run the populateDDS.py script for example:
scoretest@DDSBUILD:/mnt/c/DDCI_integration/DDS$ ./populateDDS.py --progress customer-throne none
TODO:instead of none, /mnt/ship/approved or other
When completed, 'Release created in folder: /mnt/c/DDCI_integration/<dds-name>' is printed and the release folder will be created in the
C:\DDCI_integration folder under the name: DDS-docker-<customer-name>-deos-<distribution>-<yyyymmdd>[-x]
where the '-x' is optional and used only when more than one invocation occurs on a given day.
To see all options accepted by populateDDS.py invoke with the --help option.
Build a tar file for a Linux docker distribution
tar -cf <dds-docker-image>.tar --group=root --owner=root --mode=go-w,a+rx -C //nx3000.ddci.com/ship/dds/ubuntu/approved/DDS-docker-<name> .
Rationale for no -j or -J: The vast majority of the content is a docker image which is compressed using .xz so compressing again is a time sink and can actually increase the size of the image.
NOTE: The tar command *MUST* be executed from a Cygwin shell in order to ensure that the "mode" on the script files is set properly. The files going into the tar file are on a windows share which does not properly encode the "mode", but Cygwin has special hacks to ensure that files with shebang lines get set to the equivalent of chmod a+x.
Don't forget to unlock x9