Build and Deploy

Application to become available to end users should be first built and deployed.

During the build process all the items prepared with builder are compiled and packaged into a special distribution file used later during deployment.

During the deploy process the application distribution file built earlier is starting on a dedicated Docker container.


Build

Build can be started by any contributor user. You may track the progress by watching the corresponding task on the right sidebar. The whole build process consists of a number of steps such as building custom blocks, compiling application classes, preparing data of system instances, preparing custom resource files, gathering all resources together and archiving them into a single distribution file. You may always get info of the last performed build, just activate a tooltip popup over the Build button.


Deploy

To start deploy you should be a contributor with deployment rights. Furthermore you need to have an active container available for the application. If either of the conditions is not satisfied then you may need going to Dashboard and change configuration settings or ask your company administrator to do it for you. 

The deployment itself consists of a number of steps, which include stopping the application and Docker container if it is currently running, starting the container with the latest distribution file and periodic checking whether the application has become available on-line. 

After the last step is successful you get a signal of positive task completion. Besides this you may track the progress by watching the corresponding task on the right sidebar. Furthermore you may always quickly check deployment state of any application under the current configuration in the builder. Simply click on the Deploy button and expand info block for any listed application.

When starting deployment you are asked about what to do with entity type instances created in builder. If it is the first time that you deploy the application then, of course, all instances should be synced in a simple straightforward way.  On the other hand, if it is not the first deployment then you need thinking about which instances to update and which should be left unaffected. There are three options for this. The default one is to update all read-only instances, those which cannot be changed in the application. The second option is to force updating all entity type instances. And the third option is to manually select instances to update.

For the instances deleted in builder the behavior is always the same. During deployment they become deleted from application as well.