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.
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 two 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.
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 Name>-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.0.0-20220303T103434Z-OK
Delivery Branch name is: del-ifs-cloud-22.2E.0-gatest7-1.0.0-20220303T103434Z-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.
After the Delivery is created¶
After the Delivery is successfully created,
- A Successful Delivery Environment is created
- Customer Solution Repository is tagged with a <delivery-id>-PENDING tag
- The relevant Delivery Package and the Delivery Logs will be available for downloading in the Deliveries Section of the Build Place
- The 'Approve' button will be visible and clickable on the relevant Delivery Environment
Once the Delivery is tested and ready, the tester should click on the 'Approve' button on the relevant delivery environment. This,
Marks the Delivery environment as 'Approved'. Further clicking on the button is not possible.
The <delivery-id>-PENDING tag in the Customer Solution Repository is updated to <delivery-id>-OK tag.
The details in the Delivery section of the Build place is updated.
Applying the Delivery to the Use Place¶
This is handled in two ways, depending on the Residency option a customer has selected for their Use Place.
Residency Option 1 - IFS Cloud:¶
In this case, the approved delivery can be applied to the use place by using a scheduled job via SNOW. Below process explains the delivery deployment of IFS Cloud.
Use Place Management Form in SNOW¶
CSM Portal - https://support.ifs.com/csm
IFS Lifecycle Experience Use Place Managment Form can be found as below.
Enter customer details, use place details and scheduling
Residency Option 2 - Remote¶
In this case, the user has to download the delivery via the Deliveries section in the Build place and apply it themselves, the user must first have a properly configured remote Use Place to apply a delivery. The scripts and other items needed to set up a remote Use Place can be found in the 'Manage Deployments' section in the Build Place, if the customer's residency option is of type 2 (Remote).
A sample screen shot of the 'Manage Deployments' section.
Manage Deployments for A&D Customers¶
If the industry of the customer is A&D, they will have a separate set of artifacts called 'Remote Aviation Maintenance Deployment' in addition to the existing artifacts.
The artifacts will be available for all the service update versions related to the release version the customer is in. The relevant version can be selected and downloaded to be deployed in use place.
Please note that this feature is available only for A&D customers in 22R2 and beyond.
The deployment instructions for A&D customers can be found here.