Types of Deliveries¶
There are two types of Deliveries.
- Normal Delivery
- Corrective Delivery
Before start delivery creation first step is to decide what type of delivery is to be made. For regular deliveries, follow 'Normal delivery' steps. In special situations where a fix needs to be delivered on a delivery which is already deployed in the customer's use place, the 'Corrective delivery' type can be used.
For customers who have chosen the remote deployment model, prior to ordering the first subsequent delivery, it is required to set the Remote Deployment Service Provider. The 'Remote Deployment Service Provider' should be the service provider you have selected to deploy your deliveries into Use Place.
The selection of 'Remote Deployment Service Provider' does not have an impact on delivery installation files or any delivery related process. The selection is for build place internal reference only.
Once the value is selected, it will be shown in the 'Order Delivery' dialog as a read-only value.
Users with BP User Admin permission will have the ability to change this value later in the build place settings page.
1. Delivery Creation - Normal Delivery¶
To order a normal delivery, from the IFS Lifecyle Experience portal, go to a Build Place and select 'Order Delivery'.
A side panel will open. It will have three fields that need to be set in order to order a delivery.
The following parameters needs to be provided when ordering a delivery.
Delivery Baseline is the baseline delivery on which the new delivery will be based on. The new delivery will be applied on top of the selected delivery baseline. Delivery baseline can be either the initial delivery or a recent delivery.
Target Commit / Branch
Target commit is the commit tag which should be made into a delivery. This will be a sanity tag for this type of delivery.
All sanity tags which are newer than the selected Delivery Baseline will be shown. Select the one preferred. The most recent sanity tag will be automatically selected (Figure 1.4).
Delivery ID is an auto-generated value. This will be the unique name of each delivery. The ID follows the format of del-ifs-cloud-<version tag>-<build place ID>-<delivery version>-<datetime in UTC>-OK, where the 'delivery version' will differ between Normal type deliveries and Corrective type deliveries. This versioning difference will be discussed in the next section.
Furthermore, the delivery tag for the delivery being created will also be based on this delivery ID.
The Delivery version is composed of three sections. They are,
- Major version (A)
- Minor version (B)
- Revision (C)
The delivery version always follows the format 'A.B.C'.
The major version will always start with '1' and increment. It will be restart whenever the version tag of the IFS Cloud application changes (Service Upgrades etc).
The minor version will always start with '0' and increment. It will be incremented with each successful Normal delivery creation.
The revision number will always start with '0' and increment. This will only be incremented in case of a Corrective delivery based on a Normal delivery.
The Initial Delivery of a Build place will be of the format 1.0.0
The next Normal Delivery will have the version number 1.1.0
A Corrective Delivery based on 1.1.0 will have the version number 1.1.1
Once all fields have been appropriately filled, click Order button on the side panel to place the order. A new entry in the Build Place Environments will be created along with a message if the operation was successful.
2. Delivery Creation - Corrective Delivery¶
Initial Instructions when creating a Corrective Delivery¶
The purpose of the Corrective delivery is to provide the capability to add some 'cherry-picked' changes to an existing delivery. One use case of this would be to fix a bug that was found in the earlier delivery after it was released. The bug had been fixed in the most recent code, but in this case not all the recent changes are required to be applied to the existing delivery, only the fix. The workflow needed to create such a delivery is described below.
First, the Delivery Baseline to be fixed is to be identified. Once it has been identified, its matching repository tag needs to be found. To do this, navigate to the Customer Solution Repository URL in the Build Place and select 'Tags' under 'Repos'.
All the repository tags will be available here. Please note-down the Successful Delivery tag that is identical to the selected Delivery Baseline. The Delivery tag follows the format of
Delivery Baseline => DB
del-ifs-cloud-<DB_product_version>-<DB_buildplace_ID>-<DB_major_verison.DB_minor_version.DB_revision + 1>-OK.
the Delivery Baseline is: del-ifs-cloud-22.2E.0-gatest7-1.0.0-20220303T103434Z-OK
the Delivery tag: del-ifs-cloud-22.2E.0-gatest7-1.0.0-20220303T103434Z-OK
Once the Delivery tag has been found, the Delivery Branch needs to be created from this tag.
The branch naming follows the format: <Delivery Baseline Name>-OK. This branch is for cherry picked changes which should be applied on top of the selected Delivery Baseline.
The branch can be created using the following Git command in the local repository. This option should be available in any popular Git GUI client as well.
git checkout -b <New branch name> <Delivery tag>
Please note that the New branch name should be the same as the Delivery tag.
the Delivery tag: del-ifs-cloud-22.2E.0-gatest7-1.1.0-20220303T103434Z-OK
Delivery Branch name is: del-ifs-cloud-22.2E.0-gatest7-1.1.1-20221345T103434Z-OK
Then using 'Git cherry pick' command, apply the needed changes to the Delivery Branch from the 'master' branch.
It is highly recommended that if any new changes need to be done to support the fix, to do those changes in separate topic branches and then merge them to master branch first. Cherry pick the required changes from the master branch to the Delivery Branch. This way all changes done to the code will be persisted in the master branch.
Once the changes have been finalized, follow the instructions in the below "Final steps of creating a Corrective Delivery " section to create the new delivery.
Final steps of creating a Corrective Delivery¶
To order a corrective delivery, from the IFS Lifecyle Experience portal, go to a Build Place and select 'Corrective Delivery'.
- Then select the "Order Delivery" option from available list as in the below image.
- Upon clicking the "Impact Analysis" option a " following dialogbox will be poped-up.
- Top of the dialog box, there is a text to educate user that this will use for create a delivery order for corrective delivery
Select the particular Delivery baseline tag from the dropdown.
Target Branch section will filled automatically with name of the branch which is created from particular delivery tag.
Note: Target Branch section will filled automatically only if a branch existing in azure customer solution repository with the branch name similar to the selected tag. If there is no such branch existing Target Branch section will populate with "No matching branch found for the selected delivery baseline tag." error message.
Click on the "Order" button. 
Once clicked on the "Order" button, a new entry in the Build Place Environments will be created along with a message if the operation was successful.
Note: In case of repair script needs to deployed to a specific environment of the Use Place using corrective delivery, Refer Deploying a Correction script on a specific environment on Use Place.