So far this chapter has discussed how the outputs of different projects can be staged into staging components or directories. I have also discussed how these staged objects can be reused in other projects. The next logical step is to understand how to assemble a set of prebuilt and staged objects (possibly encompassing a range of projects) into a Deployment Unit. One way to achieve this is to create a specific assembly or deployment project. This project does not carry out builds but rather assembles staged objects from labels or baselines into a form ready for deployment. I will discuss how to carry out this assembly process next.
Create a Deployment Component
A number of artifacts usually are created specifically as part of the deployment process:
These artifacts usually are created by the deployment engineer. They are fundamental to the release and deployment process but often are overlooked and kept in locations outside version control. It therefore makes sense, certainly for completeness and traceability, to version these artifacts by creating another Base ClearCase directory or UCM component in which to store them. For example, the RationalBank project has an additional component in the Staging VOB called deployment; this was illustrated in Figure 10.5. The process to create this component is the same as any other staging component and can be carried out using the process described earlier.
Create an Assembly Project
To create the Deployment Unit, you need some way of identifying the set of ClearCase labels that are to be assembled. With Base ClearCase, you can do this by creating a deployment view with a config spec configured to look at the appropriate set of ClearCase labels for the projects that are to be deployed:
element \RatlBankReleases\model\... RATLBANKMODEL_01_REL element \RatlBankReleases\db\... RATLBANKDB_01_REL ...
You should also create a specific user group with write permission to the deployment directory, as before.
With UCM you can create an assembly project for this purpose. This project should have write access to its own UCM component but read access to all the other staging components, as illustrated for UCM in Figure 10.13.
Figure 10.13. UCM assembly project accessibility
To create the Deployment Unit, you would configure the project to look at the appropriate set of ClearCase baselines, as shown in Figure 10.14.
Figure 10.14. UCM assembly project configuration
Create the Deployment Unit
With the correct environment in place, looking at the collective set of compatible staged objects, the deployment engineer can create the Deployment Unit. The exact process of constructing the Deployment Unit, as I stated at the beginning of this section, depends on the environment in which you are working. However, in ClearCase you can create Deployment Unit files; this capability is used in conjunction with the build and deployment tracking capability. I therefore discuss this capability in detail in the next chapter when I look at the complete release packaging and deployment process.