Advanced Deployment

To fully automate your CI/CD pipeline, you may want to further configure your target application of your deployment and also influence the deployment behavior.

Application configuration

If you are deploying a full application zip-archive you can optionally add an app.yaml in a dedicated config folder of your zip-archive, which contains the configuration of the application.

1# sample app.yaml which can be part of the full application zip-archive
2StandardProcess: 
3  DefaultPages: ch.ivyteam.ivy.project.portal:portalTemplate
4  MailNotification: ch.ivyteam.ivy.project.portal:portalTemplates

This file should always contain configurations which are the same for all installations of the application or serve as good defaults like configuration of the StandardProcess.

Priority

The app.yaml will be deployed into the config folder of the application itself and serves as additional configuration for the application, but with a lower priority than the regular <APPNAME>/app.yaml (e.g. myApp/app.yaml) in the configuration directory.

Overriding variables

The app.yaml file can override Variables declared in projects.

If these variables are values of type file (e.g [file: json]), then these files values can also be overriden by adding them to the app.zip under <app.zip>/config/variables/myVariableName.json as shown below.

app.zip
├── config
│   |──variables
|   |  └─ userSettings.json
│   └── app.yaml
├── base.iar
├── solution.iar
└── customer.iar

Versioning

It is highly recommended that you increase the version of your project each time you want to deploy a new version of your project on the engine. This ensures that you will not break currently running cases, and you have the possibility to go back to the previous version if the new version does not work as expected.

Even though overwriting an already deployed process model version with running cases is possible. It is at your own risk and should only be done if you are aware of the possible consequences and ready to accept them.

Deployment Options

With deployment options you can influence the deployment behavior:

 1# Example of a deployment options file using YAML format.
 2# See http://axonivy.github.io/project-build-plugin/release/deploy-to-engine-mojo.html for
 3# more information about deployment options parameters.
 4# All parameters are set to their default values and listed in [brackets].
 5
 6# Indicates whether project test users should be deployed to the engine or not.
 7deployTestUsers: AUTO           # [AUTO], TRUE, FALSE
 8
 9# Deployment target settings.
10target:
11  version: AUTO                  # [AUTO], RELEASED, (version values, e.g. 2.5 or (2.0,3.0])
12  state: ACTIVE_AND_RELEASED     # [ACTIVE_AND_RELEASED], ACTIVE, INACTIVE
13  fileFormat: AUTO               # [AUTO], PACKED, EXPANDED

See the |axon-ivy| Project Build Plugin deploy documentation for more information about the deployment properties.

There are multiple locations where you can put your options file:

  1. Deployment specific options file - If you want to provide options for a single deployment simply create a file that has the same prefix as the file you want to deploy with a suffix of .options.yaml. E.g. if the file you want to deploy is myProject.iar then create an options file that is called myProject.iar.options.yaml. Note, that after the deployment the myProject.iar.options.yaml file will be removed automatically.

  2. Inside the file that you are deploying - Put a deploy.options.yaml file inside your project directory, *.iar or *.zip that you want to deploy.

A specific deployment options file will take precedence over a packed options in the deployable file.