Skip to content

Continuous Integration

Introduction

CI Build allows the user to build and publish an app from the command line without any eclipse/installer dependency.

Prerequisite

Following are the prerequisites to install CI Build:

  1. Ant (version >1.8.2) and Node (version > 7.10.0) should be installed in the system.
  2. Copy the following plugins from <>\VoltMXIrisEnterprisex.x\VoltMX_Iris_Enterprise\plugins to a new folder.

    • com.voltmx.desktopweb_x.x

    • com.voltmx.ios_x.x

    • com.voltmx.mobile.foundry.client.sdk_x.x

    • com.voltmx.spa_x.x

    • com.voltmx.studio.iris.core.win64_x.x(for Windows 64-bit users)

    • com.voltmx.studio.iris.core.win32_x.x (for Windows 32-bit users)

    • com.voltmx.studio.iris.core.mac64_x.x (for Mac 64-bit users)
    • com.voltmx.studio.iris.core.mac32_x.x (for Mac 32-bit users)
    • com.voltmx.thirdparty.jars_x.x

    • com.voltmx.windows_x.x

    • com.voltmx.windows8_x.x

    • com.voltmx.windows10_x.x

    • com.voltmx.windowsphone8_x.x

    • com.pat.android_x.x

    • com.pat.tabrcandroid_x.x

    • com.pat.tool.keditor_x.x

    • com.voltmx.cloudmiddleware_x.x

    • com.voltmx.webcommons_x.x

    • com.voltmx.cloudthirdparty_x.x

    Note: Windows platform is not supported in the version 8.0.

  3. Copy package.json and build.js files from download.voltmx.com/iris_enterprise/citools//iris-ci-tool-.zip in the project location. For example, For Fix Pack 8 of V8 the URL is http://download.voltmx.com/iris_enterprise/citools/8.0.8/iris-ci-tool-8.0.8.zip

  4. Open the command prompt in the project location and perform the npm install.

Configure HeadlessBuild.Properties

HeadlessBuild.properties file is present in the project location.

New Entries

Upgrade Volt MX Iris Classic project to 8.x or add the below new entries in HeadlessBuild.properties file:

protectedmodeenabled.iosIf the user wants to build for iOS in protected mode, change the value to true.
protectedmodeenabled.androidIf the user wants to build for android in protected mode, change the value to true.
plugin.dirPoints to the directory, where the plugins required for the build are copied.
javalocJava home (provide the folder location consisting bin where the Java is installed.) Example: <Install_location>\VoltMXIrisEnterprise8.0\Java\jdk
androidHomeAndroid SDK path
For Proxy setup, the following new entries are applicable:proxy.hostproxy.portproxy.usernameproxy.passwordIf you are running CI build on a system behind a proxy, provide proxy details.

Existing Entries

Add the following existing entries in HeadlessBuild.properties file:

Key Name Description
project.name Project name
mode Only modes 0, 1 and 2 are supported
build.mode The mode of the build. Release or Debug.
appid ID of the application
#cloud mode credentials cloud.usernamecloud.password Applicable only for cloud
#mobilefoundry specific details mobilefoundry.urlenvironment.nameaccountd.idmf.appname Applicable only when you are trying to publish the app.
#specify the environment you want to publish Example:qa cloud.environment Applicable only when you are trying to publish the app.
#The platforms for which the headless build need to run#Mobile Channeliphoneandroidspa.iphonespa.android#Tabletipadandroidtabletspa.ipadspa.androidtabletspa.windowstablet# Desktop Channeldesktopweb# Wearablesiphonewatchandroidwearos The value is either true or false. Enter true to build the platform else false. Please note that you cannot build Apple watch alone. When you build for Apple watch ensure that you build for iPhone as well.
#Provide the following details for IPA generation:mac.ipaddressmac.usernamemac.passwordkeychain.passworddevelopment.team.idmethodgenipaiphone (to generate IPA for iPhone)genipaipad (to generate IPA for iPad) Enter true to generate IPA for iPhone and iPad. For the method, possible values supported are app-store, ad-hoc, enterprise, and development.
Universal build for iOS:universal.iPhoneuniversal.android Enter true to perform universal build for iPhone. Enter true to perform universal build for Android.
#Windows platform for headless build:#Mobile Channelwindowsphone10#Tabletwindows10#Desktop Channeldesktop_kiosk Window platforms
binaries.location Location, where the binaries are saved after the app is successfully built.
versiondefault_localeandroid.packagenameandroid.versioncodeios.bundleversion Support has been added for the following items from V8 SP1 onwards.
keyAlias keyPasswordkeyStoreFilePathkeyStorePassword Support has provided for the Android signing keys from V8 SP1 onwards for signing.
context.path.identity context.path.workspace context.path.accounts context.path.console Supported context paths for Volt MX Foundry components, if customized.
login.siteminder.url Siteminder login URL if your on-premise Volt MX Foundry is protected by siteminder.
iosappextension App extension of the iOS.
#Supported platforms for Generate Native Library generatenativelibrary #Mobile Channel iPhone Android Windowsphone10 #Tablet Channel iPad Android Tablet Windows10 The value is either True or False. Enter false to build the Generate Native Library.

Important: There are many keys available in the HeadlessBuild.properties file. However, not all of them are applicable for the CI Build. The keys mentioned above are the only ones applicable for CI Build.

Important: If you do not want to store your password in the headless build.properties file, you can use mfcli to encrypt your password. You can download the mfcli.jar from https://community.hclvoltmx.com/downloads.

Ensure that you use the corresponding version of MFCLI as that of the Iris. i.e 7.x iris, 7.x mfcli, 8.x iris, 8.x mfcli.

To encrypt the password using mfcli (using default password.encryption.key),
java -jar mfcli.jar encrypt "VoltMX@1234" Encrypted password is: en1801f1abee7b9e12426c062509e1b18epd

Platforms Supported

Following platforms are supported to build the CI application:

  • iPhone, iPad
  • Android mobile and tablet
  • SPA mobile, tablet and desktop web
  • SPA/DW publish
  • Windows mobile, tablet and kiosk

Build the Application

Follow these steps to build the application:

  1. Copy the build.js file to the project location.
  2. Update the HeadlessBuild.properties file of the project, provide the necessary entries.
  3. Open the command prompt in the project location.
  4. Run the node command node build.js

If there is a change in the plugin use –clean parameter, as below:

node build.js –clean

  1. If the app is built successfully, the binaries are saved in the location defined in the binaries section of HeadlessBuild.properties file.

    Note: If the binary location is not specified in the file, the binaries are saved in the following default location.
    /Binaries.

Error Codes

The error codes are indicative of failed stage or operation. The actual error messages differ from the description mentioned below:

Example: Error code 50 describes as one of the mandatory field is missing. Actual error message will list the fields missing.

Error Code Description
50 One or more mandatory fields are missing in HeadlessBuild.properties.
51 At least one platform should be selected for the build in HeadlessBuild.properties.
52 Plugin extraction failed (or) one or more mandatory plugins are missing.
53 Publishing Volt MX Foundry application failed.
54 Volt MX Foundry configuration details are missing in HeadlessBuild.properties.Example: error message will be (cloudname, cloudpassword, envname, accountID, mfAppName) is (or) are missing.
55 Project porting failed.
56 There are no forms created to build the selected channels.Example: There are no forms created for: Desktop
57 JAVA_HOME not found in environment variables (or) expected Java version is not found.
58 ANT_HOME not found in environment variables (or) expected ant version is not found.
59 Expected node version not found.Example: node version mismatch: required 7.10.0, found 6.10.2.
60 Expected Xcode version not found.
61 Expected Finalizer version not found.
62 Build failed for one or more selected platforms.