AppFactory User Guide

Similar documents
Introduction to Kony Fabric

Installation Guide - Windows

Integration Service. Admin Console User Guide. On-Premises

Integration Service. Admin Console User Guide. On-Premises

Kony MobileFabric Engagement Services QuickStart Guide

Installation Guide - Mac

Kony MobileFabric. Release Notes. On-Premises. Release 6.5. Document Relevance and Accuracy

Installation Guide - Mac

Installation Guide for Kony Fabric Containers Solution On-Premises

Installation Guide - Mac

Engagement Services. Database Setup Guide - SQL Server

Android Build Guidelines

Installation Guide - Mac

Supported OS, Application Servers, and Databases Guide

Supported Devices, OS, and Browsers

Ansible Tower Quick Setup Guide

Installation Guide - Windows

Integration Service. Admin Console User Guide. On-Premises

Installation Guide - Linux. On-Premises

Sync Services. Server Planning Guide. On-Premises

Sync Services. Server Planning Guide. On-Premises

TM DevOps Use Case. 2017TechMinfy All Rights Reserved

Introduction to application management

Install and upgrade Qlik Sense. Qlik Sense 3.0 Copyright QlikTech International AB. All rights reserved.

Setting Up Resources in VMware Identity Manager (SaaS) Modified 15 SEP 2017 VMware Identity Manager

TM DevOps Use Case TechMinfy All Rights Reserved

Kony MobileFabric. Deployment Guide. Release 7.3. Document Relevance and Accuracy

Continuous Integration, Continuous Deployment and Continuous Testing by HP Codar using ALM and Jenkins

Setting Up Resources in VMware Identity Manager (On Premises) Modified on 30 AUG 2017 VMware AirWatch 9.1.1

Index. Chaminda Chandrasekara 2017 C. Chandrasekara, Beginning Build and Release Management with TFS 2017 and VSTS, DOI /

Pulse Workspace Appliance. Administration Guide

Setting Up Resources in VMware Identity Manager. VMware Identity Manager 2.8

Setting Up Resources in VMware Identity Manager 3.1 (On Premises) Modified JUL 2018 VMware Identity Manager 3.1

Integrating AirWatch and VMware Identity Manager

Kony MobileFabric. Sync Windows Installation - Manual - WebSphere. On-Premises. Release 7.2. Document Relevance and Accuracy

Guide to Deploying VMware Workspace ONE. VMware Identity Manager VMware AirWatch 9.1

Vodafone Secure Device Manager Administration User Guide

Guide to Deploying VMware Workspace ONE with VMware Identity Manager. SEP 2018 VMware Workspace ONE

Installing and Building Apps on a Mac


Developer Cockpit. Introduction 1. Prerequisites 2. Application Lifecycle in MindSphere 3. User interfaces "Developer Cockpit" 4

271 Waverley Oaks Rd. Telephone: Suite 206 Waltham, MA USA

Table of Contents. Copyright Pivotal Software Inc, of

TM DevOps Use Case. 2017TechMinfy All Rights Reserved

Sophos Mobile Control Administrator guide. Product version: 5.1

Guide to Deploying VMware Workspace ONE. DEC 2017 VMware AirWatch 9.2 VMware Identity Manager 3.1

Continuous Integration (CI) with Jenkins


vrealize Code Stream Plug-In SDK Development Guide

VMware Workspace ONE UEM Integration with Apple School Manager

VMware AirWatch Integration with Apple School Manager Integrate with Apple's School Manager to automatically enroll devices and manage classes

Oracle Code Day Hands On Labs (HOL) (Install, Repository, Local Deploy, DevCS, OACCS)

Turbo boost your digital app test automation with Jenkins

SAP Global Track and Trace Onboarding Guide

MANAGING ANDROID DEVICES: VMWARE WORKSPACE ONE OPERATIONAL TUTORIAL VMware Workspace ONE

Centrify for Dropbox Deployment Guide

ios Ad Hoc Provisioning Quick Guide

HP Roam - Business Deployment Guide

Samsung Knox Mobile Enrollment. VMware Workspace ONE UEM 1902

Install and upgrade Qlik Sense. Qlik Sense 3.2 Copyright QlikTech International AB. All rights reserved.

KACE GO Mobile App 5.0. Release Notes

Setting Up Resources in VMware Identity Manager

Corona SDK Device Build Guide

Dell Management Portal. Apple Device Enrollment Program

SC-T35/SC-T45/SC-T46/SC-T47 ViewSonic Device Manager User Guide

VMware Identity Manager Administration. MAY 2018 VMware Identity Manager 3.2

BUILD AND DEPLOY SOA PROJECTS FROM DEVELOPER CLOUD SERVICE TO ORACLE SOA CLOUD SERVICE

TIBCO LiveView Web Getting Started Guide

INSTALLATION AND SETUP VMware Workspace ONE

Kony Licensing Guide

Using the vrealize Orchestrator Operations Client. vrealize Orchestrator 7.5

Sophos Mobile Control startup guide. Product version: 7

About This Document 3. Overview 3. System Requirements 3. Installation & Setup 4

BMS Managing Users in Modelpedia V1.1

Silk Central Release Notes

Remote Support 19.1 Web Rep Console

VMware AirWatch Android Platform Guide

ios App Resigning and VoIP Certificate Guide

Installing and Building Apps on a Mac

Sync Services. Developing Offline Applications

Deploying VMware Workspace ONE Intelligent Hub. October 2018 VMware Workspace ONE

8.0 Help for Community Managers Release Notes System Requirements Administering Jive for Office... 6

KACE GO Mobile App 4.0. Release Notes

VMware AirWatch - Mobile Application Management and Developer Tools


APAR PO06620 Installation Instructions

User Journey - Funnel Reports, App Events and APM

Google Sync Integration Guide. VMware Workspace ONE UEM 1902

Symantec Ghost Solution Suite Web Console - Getting Started Guide

Creating Application Definitions in Hana Cloud Platform Mobile Services

VMware Identity Manager Administration

ForeScout Extended Module for ServiceNow

VMware AirWatch Integration with Apple School Manager Integrate with Apple's School Manager to automatically enroll devices and manage classes

EMC Documentum Composer

Contents Using the Primavera Cloud Service Administrator's Guide... 9 Web Browser Setup Tasks... 10

VMware AirWatch - Workspace ONE, Single Sign-on and VMware Identity Manager

Red Hat OpenShift Application Runtimes 1

edocument for Hungary Invoice Registration - SAP Cloud Platform Integration Guide (SAP S/ 4HANA Cloud)

Custom Metrics and Reports

End User Manual. December 2014 V1.0

Transcription:

Kony AppFactory User Guide Release V8 SP3 Document Relevance and Accuracy This document is considered relevant to the release stated on this title page and the document version stated on the Revision History page. Remember to always view and download the latest document version relevant to the software release you are using. 2018 by Kony, Inc. All rights reserved 1 of 183

AppFactory User Guide Copyright 2018 Kony, Inc. All rights reserved. September, 2018 This document contains information proprietary to Kony, Inc., is bound by the Kony license agreements, and may not be used except in the context of understanding the use and methods of Kony, Inc., software without prior, express, written permission. Kony, Empowering Everywhere, Kony Fabric, Kony Nitro, and Kony Visualizer are trademarks of Kony, Inc. MobileFabric is a registered trademark of Kony, Inc. Microsoft, the Microsoft logo, Internet Explorer, Windows, and Windows Vista are registered trademarks of Microsoft Corporation. Apple, the Apple logo, itunes, iphone, ipad, OS X, Objective-C, Safari, Apple Pay, Apple Watch, and Xcode are trademarks or registered trademarks of Apple, Inc. Google, the Google logo, Android, and the Android logo are registered trademarks of Google, Inc. Chrome is a trademark of Google, Inc. BlackBerry, PlayBook, Research in Motion, and RIM are registered trademarks of BlackBerry. SAP and SAP Business Suite are registered trademarks of SAP SE in Germany and in several other countries. All other terms, trademarks, or service marks mentioned in this document have been capitalized and are to be considered the property of their respective owners. 2018 by Kony, Inc. All rights reserved 2 of 183

AppFactory User Guide Table of Contents 1. Introduction 7 2. Kony AppFactory CI/CD Runtime 8 2.1 Why we need an App Factory? 8 3. Running Your First App 12 3.1 Access Management 12 3.2 Prerequisites 16 3.3 Creating a New AppFactory Project 21 4. Running Visualizer App 30 4.1 Builds 30 4.2 Configuration 33 4.3 Running CustomHooks in Your AppFactory Project 53 4.4 Building an App 69 4.5 Troubleshooting 72 4.6 Auto-Triggered Jobs 86 4.7 Testing an App 103 5. Running Kony Fabric App 135 5.1 Kony Fabric Export 139 5.2 Kony Fabric Import 144 5.3 Kony Fabric Publish 149 5.4 Publishing a Web App 152 2018 by Kony, Inc. All rights reserved 3 of 183

AppFactory User Guide 6. Working with AppFactory 163 6.1 Adding New Credentials 163 6.2 Deleting Credentials 179 7. Results 182 7.1 Reviewing Results at Jenkins Console 182 7.2 Reviewing Results at Testing Console 183 7.3 Reviewing Results by Email 183 7.4 Known Issues 183 7.5 Limitations 183 2018 by Kony, Inc. All rights reserved 4 of 183

AppFactory User Guide Revision History Date Document Version Description of Modifications and Release 09/24/2018 1.5 Updated document for V8 SP3 release. Appended new topics sections Supporting Multiple Fabric App Versioning in Kony Fabric App, External Authentication. APPLE_SIGNING_CERTIFICATES Universal Binary support, and in Configuring Build Visualizer App, CustomHooks, and Testing an App Desktop Web support in Configuring Build Visualizer App and Testing an App sections. Protected Build support in Configuring Build Visualizer App. Modified Running your First App section. Included new limitations in Limitations section. 06/29/2018 1.4 Appended a known issue on deletion of CustomHook. 05/08/2018 1.3 Worked on few changes in Adding New Credentials. Added new section Known Issues. 04/23/2018 1.2 Added new section Running CustomHooks. Added Downloading Log Files section to Troubleshooting. 2018 by Kony, Inc. All rights reserved 5 of 183

AppFactory User Guide Date Document Version Description of Modifications and Release 02/07/2018 1.1 Added new section Working with AppFactory. Modified few screenshots and worked on some minor changes. 12/18/2017 1.0 Worked on the initial draft. 2018 by Kony, Inc. All rights reserved 6 of 183

1. Introduction AppFactory User Guide 1. Introduction Mobile Application Development is driven by customer demand more so than any customer interface before it. Demand for both B2C and B2E apps are driving organizations to move quickly to deploy apps and new features in shorter delivery cycles. MADP tooling, RMAD, and other mobile development tools help developers meet this demand. However, many developers are facing tight deadlines during the release management process, as they spend the time to build and release instead of focusing on only building apps. If the teams cannot build on demand or use a continuous integration and delivery approach, they are more likely to have merging challenges. Problems may occur when a large set of features are released without testing them in shorter build cycles. Agile is said to be fully functional only when we can constantly test and adjust the development process. The Kony AppFactory CI and/or CD (Continuous Integration (or) Continuous Delivery) services complete the agile delivery process by allowing developers to continuously build, test, and deploy apps. 2018 by Kony, Inc. All rights reserved 7 of 183

2. Kony AppFactory CI/CD Runtime AppFactory User Guide 2. Kony AppFactory CI/CD Runtime The Kony AppFactory is a combination of agile methodologies and tools that allow teams to deliver apps at a scale. The current document focuses on the AppFactory Continuous Delivery platform, but it is important to understand how the AppFactory Continuous Delivery runtime works. 2.1 Why we need an App Factory? Kony App Factory allows building omni-channel mobile applications with a few clicks. The App Factory runtime automates SDLC process of your product lifecycle and reduces Time to Market by cost effective automatic solution of product release management. Kony App Factory allows users to configure their backend services using Fabric and create mobile apps using Visualizer. Check-in the Fabric configurations and Visualizer source code into GitHub and build the application across mobile, desktop, and web. Deploy the application to a specific environment and test the application in that environment through automation testing on real devices. The application development process consists of the following phases: 2.1.1 Access the Kony Environment In order to access the Kony Environment, send new request to the administrator requesting to add you as a developer to the AppFactory. The administrator enters the email of the new user in the user management tab of Fabric and assigns the user the role of a developer within the console. Once you are added as a developer to Fabric, you receive an email from Fabric informing the user can now develop apps. 2018 by Kony, Inc. All rights reserved 8 of 183

2. Kony AppFactory CI/CD Runtime AppFactory User Guide 2.1.2 Run the Visualizer All developers receives an email as an invitation to the Kony Fabric cloud. Click the link within the email to access the Login screen. Once you log into the Kony Fabric, you can download Visualizer. Open the Visualizer and create a new project or checks out an existing project from the git repository. After incorporating the changes, check the project into GitHub. 2.1.3 Schedule a Build In general, the developer and/or designer schedules a build. Optionally, an administrator can schedule a build. Nightly build is an example of one such build schedule. To perform a build, the administrator logs into AppFactory Console and clicks the link to schedule a job. The administrator picks the channels, environment and other build parameters to schedule. The administrator then picks the days and the time for the build. Once the selection is complete, the job is scheduled to run. When the scheduler starts a build process, it sends the results to an email distribution list selected by the administrator. 2.1.4 Trigger a Build A developer performs check-in into the source control after completing a feature or making the necessary changes to the app. At this juncture, the developer triggers to build an app. The administrator allows web-hooking at source control. The administrator then logs into AppFactory Console and creates a watcher. The watcher identifies new changes occurring at the source control. Once the build is triggered, the watching job runs and sends the results to an email distribution list. 2.1.5 Build an App A developer completes a feature and checks the changes into source control. The developer then logs into AppFactory and selects the build screen to perform a build. From the build screen, the developer chooses the environment to build the app and the designated channels (ios and Android). The developer can also run the test scripts against the build. The developer clicks the Run Test option. The developer submits the build job to the AppFactory CI and/or CD runtime. The runtime compiles the app and sends the developer an email when the build is complete. 2018 by Kony, Inc. All rights reserved 9 of 183

2. Kony AppFactory CI/CD Runtime AppFactory User Guide 2.1.6 Test an App If the build is successful, the runtime executes the test scripts. Once the tests are complete, the developer receives an email with the test results. 2.1.7 Review Results The developer can review the email results or open testing console at AppFactory to review the test results. The developer can compare the test results to previous runs or download the binaries used during the testing process. The AppFactory users can also execute the following additional steps on demand: Scheduling Tests In general, the developer and/or designer schedules the tests. However, an administrator can choose the option to schedule tests. For example, test schedule is a nightly test run on an extended list of devices. The administrator must access AppFactory console and click the link to create test job scheduler. The administrator picks the app binaries, test binaries, and list of devices to schedule and executes the tests. The administrator then picks the days and times to perform the test. Once the selection is done, the job is scheduled to run. When the scheduler starts a test process, it sends the results to an email distribution list. Triggering Tests A quality engineer needs to launch Testing an App to check-in the additional tests into source control. An administrator allows web-hooking at source control. Following which the administrator logs into the AppFactory and creates watcher which tracks any new changes that happen in the source control. Once the trigger occurs, the watching job starts to run and send the results to an email distribution list. Publishing a Fabric App 2018 by Kony, Inc. All rights reserved 10 of 183

2. Kony AppFactory CI/CD Runtime AppFactory User Guide An administrator can publish a Fabric app to Kony Cloud accessing AppFactory console. The administrator should upload Fabric app from source control to Kony Cloud as an initial step. The administrator runs import job on the Kony Cloud for the upload activity. Following which the administrator launches publish job. This deploys the already uploaded Fabric app to Kony environment. Once publish job finishes the execution, a developer can use Fabric app endpoint with given app key and secret. 2018 by Kony, Inc. All rights reserved 11 of 183

3. Running Your First App AppFactory User Guide 3. Running Your First App Before you begin to run the App for the first time on AppFactory console you must follow these mandatory steps to complete the configuration of your build process for your first app. You must obtains the requirements such as credentials, key files, and passwords to complete the configuration. Access Management - The first step before you proceed with running your first app is to obtain the credentials to log into AppFactory account. For information related to accessing the AppFactory account, refer Access Management. Prerequisites - To configure an app for the first time, you must adhere to few basic requirements. For information on the minimum requirements to be followed, refer Prerequisites section. Creating a New AppFactory Project - You must follow certain steps to create a new App Factory project. For more information, refer Creating a New AppFactory Project. 3.1 Access Management Kony AppFactory requires your Kony Fabric credentials to connect to AppFactory console. If you do not have access to Kony AppFactory from your Kony Fabric console, contact your administrator to obtain the necessary credentials. To access the AppFactory console, follow these steps: 1. Type the URL https://manage.kony.com in the address bar and hit Enter. The Kony Cloud Sign In screen appears. 2018 by Kony, Inc. All rights reserved 12 of 183

3. Running Your First App AppFactory User Guide 2. Enter the Kony Cloud account credentials provided by the administrator. 3. Click Sign In. You will be logged in to Kony Fabric Console. 4. Click Environments from the left pane. You can view the list of environments configured for AppFactory. 5. Click Build Management to start using AppFactory on cloud account. Based on the authentication settings, you may need to login to use AppFactory. 2018 by Kony, Inc. All rights reserved 13 of 183

3. Running Your First App AppFactory User Guide 3.1.1 External Authentication on AppFactory Kony now supports external authentication on AppFactory Account. You can access the AppFactory console using your Okta credentials. Using external authentication, you can download and access the artefacts and MustHaves on your AppFactory Account. Note: When external authentication is enabled for an AppFactory Account, it is enabled for all the tenants in the account. Follow these steps to access your AppFactory Account through third-party applications: 1. Log on to your Kony Fabric Account. 2. From Accounts drop-down list, select App Factory Account. If Okta is enabled, a RE-LOGIN button appears. 3. Click RE-LOGIN. The Launch External Login window appears. 2018 by Kony, Inc. All rights reserved 14 of 183

3. Running Your First App AppFactory User Guide Note: If external Identity Provider user authentication is configured and you are accessing the AppFactory account directly, the Launch External Login window appears. 4. Click Launch External Login. The Okta Sign In page appears. 5. Enter your Okta credentials and click Sign In. You are logged in to your AppFactory Account with external authentication. 2018 by Kony, Inc. All rights reserved 15 of 183

3. Running Your First App AppFactory User Guide 6. Navigate to the Environments section from the left pane and select AppFactory. The AppFactory console appears. 3.2 Prerequisites There are a few prerequisites to complete the configuration of your build process, for your first app. Before starting, ensure you have met these requirements. You need to obtain requirements such as credentials, key files, and passwords to complete the configuration of your first app. The following are the prerequisites to configure an App for the first time in AppFactory Console. 2018 by Kony, Inc. All rights reserved 16 of 183

3. Running Your First App AppFactory User Guide 1. Kony Cloud account An administrator at Kony Cloud should invite a Developer and/or Designer at AppFactory console. Once the invitation is received, a developer can log into AppFactory console. Using these credentials the developer logs into the Jenkins console and Testing console. 2. Kony AppFactory environment The AppFactory user needs mandatory access to the Kony AppFactory environment. The AppFactory console and Testing console links are available under the Environments tab at Kony Fabric (https://manage.kony.com). The Kony Cloud account admin should grant access to Administrators, Managers, Developers, Designers, and Testers in AppFactory console. 3. Kony Fabric environment Kony Fabric environment allows a user of AppFactory to execute, build, and publishing processes. Every user of the AppFactory needs to have access to Kony Fabric environment. The Kony Admin provides necessary permissions to all users to access Kony Fabric environment. 4. Visualizer project in source control The developer needs to provide the Visualizer project before the AppFactory setup. It is mandatory to mention the repository location at the GitHub organization. This repository should contain atleast one project or it can be in a sub-folder. Typically, the Visualizer source is stored as a root directory or using the project name as the document root within GitHub. The following screenshot shows an example app called MyProject and the contents of the project stored in the source control. If you check your entire project into Git under the project directory, then the root of the project is the project name. In this case, it is MyProject. 2018 by Kony, Inc. All rights reserved 17 of 183

3. Running Your First App AppFactory User Guide 5. GITHub 2FA To enable AppFactory to work after 2FA (two factor authentication) is enabled, you must use a personal access token instead of your GitHub password. Follow the steps to activate 2FA and update your credentials in AppFactory with the personal access token: GitHub>> Your Profile>> Security>> Enable2FA 2018 by Kony, Inc. All rights reserved 18 of 183

3. Running Your First App AppFactory User Guide 6. Tests in source control Visualizer project in source control requires testing. Considering this requirement, the <root>/test/testng folder must contain Appium tests. The tests shall support Maven build management system and contains pom.xml under <root>/test/testng. Compile the tests using mvn compile target. In the example structure, the test scripts for the project are located in MyProject/test/TestNG. From the release V8SP3, we have added support for Desktop Web testing. Desktop Web testing script must exist at below path MyProject/test/TestNG/DesktopWeb. 2018 by Kony, Inc. All rights reserved 19 of 183

3. Running Your First App AppFactory User Guide 7. Kony Fabric project in source control As a preliminary step, submit the Kony Fabric project to source control. Also, provide the Fabric project repository location at the GitHub organization. The repository can contain only one project. The repository structure must be an unzipped Kony Fabric app. The following screenshot shows a usual Kony Fabric project structure: 8. Apple Signing Certificates (Provide Apple Developer Account or Apple Manual Certs) The developer must specify Apple Developer credentials to build an app. Depending on the type of profile for the signing app, the developer needs to generate different profiles. Check Distribution methods in Xcode help for further reference. AppFactory uses apple ID credentials during the build process to create a provisioning certificate and profile for building the app. An app developer can use their existing apple certificates and profile (instead of sharing their apple ID credentials). To use your existing apple certificates and profile, follow these steps: 2018 by Kony, Inc. All rights reserved 20 of 183

3. Running Your First App AppFactory User Guide 1. Generate the proper provisioning certificate and profile from the apple developer portal. 2. Download the certificates and manually upload to AppFactory from Build Parameters screen. For detailed information on uploading the certificate to AppFactory, refer APPLE SIGNING CERTIFICATES 9. Key store file, key store password and key password for Android Signature data is required for APK signing. For further reference, click Sign Your App in Android Studio help. 10. Protected Keys If an app developer has the protected keys and want to build their app in protected mode to enable extra security, the AppFactory user can upload their protected keys using credential plugin to use it as build parameters while building the app in Protected Mode. To know more about building an app in protected mode using protected keys, refer Protected Build. 11. Email address Send email notifications after every build or test set is performed. Email address needs to be provided before the AppFactory infrastructure setup. You must provide it before the infrastructure setup to change all the configurations automatically. 3.3 Creating a New AppFactory Project Ensure the following steps to create a new AppFactory project. To setup the app for the first time in AppFactory Console, perform the following steps: 1. Open AppFactory Console and Sign in using your Kony Account credentials. If you do not have a Kony cloud account, contact your administrator to get access to the AppFactory and your Kony Cloud. 2018 by Kony, Inc. All rights reserved 21 of 183

3. Running Your First App AppFactory User Guide 2. The AppFactory uses a job process for performing various tasks from creating new projects to running tests cases. After successful login, the console displays an overview of all the configured jobs. If it is your first time configuring a build process, you see an empty screen by default, as there are no jobs available. The Kony Cloud account name is displayed on the top right panel. This can be the Username or Email ID of a user. A user can log out of the console by clicking logout. User can search using the keywords in the Search bar provided on the top panel. The left panel constitutes of actions that users can perform with jobs. Additionally, there are quick links the user can follow to access documentation and create a new project. Below the left panel user can review currently scheduled jobs in Build Queue and list of nodes where jobs should be executed aka Build Executor Status. In the middle pane, user can view the status indicator of the folder or a job, weather icon demonstrates the stability of build, name of the folder or job, date the folder or the job was succeeded, failed and duration it takes. Following icons displays the status of the project: 2018 by Kony, Inc. All rights reserved 22 of 183

3. Running Your First App AppFactory User Guide Sunshine with little cloud icon - Displays when the project is healthy, the icon indicates the project is working properly. Rain with clouds icon - Displays if a project continues to fail. Cloud with a single drop icon: Displays if the project starts failing. In the following example, the KitchenSinkApp and MyTime jobs are healthy with the last run succeeding. 3. Click New App Factory Project link in the left panel. The New App Factory Project page appears. This page is used to create a project for building and/or testing an app. 2018 by Kony, Inc. All rights reserved 23 of 183

3. Running Your First App AppFactory User Guide The job is used to create CI (Continuous Integration) per project with predefined configuration and infrastructure. To complete the configuration, perform a first time build, for the App you want to incorporate into AppFactory. 4. Provide the following parameters: 2018 by Kony, Inc. All rights reserved 24 of 183

3. Running Your First App AppFactory User Guide PROJECT_NAME should be set to the corresponding name of the Visualizer project. Project name can be alphanumeric and must include minimum 4 and a maximum of 17 symbols in length. Project name should start with an alphabet only. PROJECT_SOURCE_CODE_URL need to be set to git repository URL, based on the location of Kony Visualizer project. The URL format is as follows https://server/<path to repo>.git PROJECT_SOURCE_CODE_SERVER_TYPE is required for configuring web-hooks. Select one of the options that match your git server. It can be Github, Bitbucket, or AWS CodeCommit. PROJECT_ROOT_FOLDER_NAME is an optional parameter. Provide a value for this parameter only if the project is not at the root of the repository. Sub-folder depth is not limited, but there is a limitation for Windows with 256 characters per path to the supported files. RECIPIENTS_LIST requires email(s) to which e-mail notifications on job status will be 2018 by Kony, Inc. All rights reserved 25 of 183

3. Running Your First App AppFactory User Guide sent. This parameter can be changed while setting the build for an App. 5. Click BUILD. When the user clicks the BUILD button, a new project with a given PROJECT_NAME is created. Looking at Build History user can find the status of the last triggered build. The job is considered to be successful, if the job status indicator is a green tick. If the job status indicator is a red circle, then consider the job did not pass. 2018 by Kony, Inc. All rights reserved 26 of 183

3. Running Your First App AppFactory User Guide Additional information on build execution can be found on the original job page. A list of structured project folders and jobs is generated during the creation of a project. Information about the last build, last stable build, last successful build, and last completed build is provided at the end of a job page. 2018 by Kony, Inc. All rights reserved 27 of 183

3. Running Your First App AppFactory User Guide 6. Once the job execution is complete, the project is created and can be reviewed on the landing page of AppFactory. 2018 by Kony, Inc. All rights reserved 28 of 183

3. Running Your First App AppFactory User Guide In the main folder of every project, there are two sub-folders with logical structure, and grouped by functionality. The first folder is Kony Fabric and the second one is Visualizer. User can navigate and narrow to particular folder (e.g. Visualizer) and run the execution, to build an app. 2018 by Kony, Inc. All rights reserved 29 of 183

4. Running Visualizer App A developer wants to run Visualizer app throughout CI/CD process - from building an app, publishing, and testing the app automatically. Every stage passes with email notifications to project team. Emails indicate the status of a stage and additional information like build or tests artifacts, test results, and many others. Visualizer folder is a sub-folder of project root folder. It contains three nested folders which include build, test logic with triggers. Builds Tests Triggers 4.1 Builds The build folder contains buildvisualizerapp job, which is responsible for orchestrating the build and test logic for different channels from a single point. 2018 by Kony, Inc. All rights reserved 30 of 183

buildvisualizerapp job initiates Visualizer project build stage which depends but not limited to the parameters: The Kony Fabric Environment is used for building a Visualizer app and then publishing it. For example, there can be three different Kony Fabric environments created for splitting release stages into three phases: Development, Staging, and Production. o A developer and/or tester use development environment to test the feature developed into particular dev branch. o A developer and/or tester use staging environment to test features developed in sprint and/or release. o An administrator uses production environment to deploy the sprint and/or release scope. The Operating System (OS) can either be Apple or Android. Form Factor can either be Mobile or a Tablet. Desktop is not yet supported. Channel type can be either be native or a web app o Native build is generated by Xcode for Apple, Android SDK. o Single Page Application (SPA) build generates WAR file for deploying project as web application. 2018 by Kony, Inc. All rights reserved 31 of 183

Build mode* specifies the type of binaries that are produced after a build: release or debug. For development, debug mode is preferable. Release binaries should be signed accordingly. The buildvisualizerapp job can be fragmented into the following logical stages: Build stage executes the build of the project from given repository. It consists of the following stages: Build Publish artifacts to S3 Notify on build status by e-mail Test stage executes tests of the project from given repository. It consists of the following steps: Build Tests Notify on build tests status by e-mail Run Tests Notify on tests run status by e-mail 2018 by Kony, Inc. All rights reserved 32 of 183

4.2 Configuration To run a build flow navigate to the buildvisualizerapp job under new AppFactory project folder, select Build with Parameters button in the menu on the left side of the screen. If it is the first time you perform a build, you need to configure the build job. For future builds, the AppFactory stores the settings from the previous build to make configurations of the future builds easy. The following steps and screenshots show how to access the Build with Parameters for the job. 1. Open an app project folder and navigate to Visualizer/Builds/buildVisualizerApp. 2. You can execute Build with parameters on the job in the following ways. On the right of job list, you can select the icon which represents Build with Parameters action. You can open drop-down menu at the buildvisualizerapp job and choose Build with Parameters action from the list. You can open the buildvisualizerapp job and execute Build with Parameters action on 2018 by Kony, Inc. All rights reserved 33 of 183

the left panel of the job. 3. At the third the user can open the buildvisualizerapp job and execute Build with Parameters action at the left panel of the job. The buildvisualizerapp job allows you to choose multiple channels to build, what environment you want to deploy to and the mode to build the application. Before running the build, you need to provide all required parameters that are listed and choose required channels to build. There are several groups of parameters that are required to run Facade job. The parameters are as following: 2018 by Kony, Inc. All rights reserved 34 of 183

1. Source control related PROJECT_SOURCE_CODE_BRANCH - branch required to point Git client to the branch you push your application code. Git is supported only. PROJECT_SOURCE_CODE_REPOSITORY_CREDENTIALS_ID is required for access to repository where your Visualizer project is stored. Important: Provide Git credentials depending on git URL format. If https link is provided, then user credentials (Username and password) are sufficient. In case of ssh link - ssh key needs to be added. Note: If your repository is protected with 2fa in GitHub, add the credentials using secret text method. For steps, refer Adding New Source Code Repository Credentials. 2. Kony Visualizer & Kony Fabric related parameters: BUILD_MODE allows Debug, Release, or Release-Protected mode. Debug build mode adds debug information at binaries that increase their size and allows debug problematic code. 2018 by Kony, Inc. All rights reserved 35 of 183

Note: If you are building your project for automated testing, you must build your project in Release or Release-protected mode. If you build in Debug mode, the landing screen in the generated app will be Kony's debugger screen (which your test automation scripts will most likely not be prepared to navigate away from). If you choose to build your Visualizer project in Release mode, this mode will not enable additional security and build the application in release unprotected mode. If you choose to build your Visualizer project in Release-protected mode, this mode enables additional security with encryption keys. This is the value you enter in build UI mode at Project Settings>> Native>> iphone/ipad/watch or Android >> Protected Mode in Visualizer. For more information about the protected mode, refer Visualizer User Guide. Important: Set the Android KeyStore options for Release build mode. Refer to description of Android related parameters. CLOUD_CREDENTIALS_ID - Kony Cloud credentials FABRIC_APP_CONFIG - Kony Fabric app name, environment name, app key, secret, service URL credentials type parameter, that is used to insert corresponding list of values into the Visualizer app. This is to use these values to initialize the client SDK and point to the right Kony Fabric app in the right cloud Environment. DEFAULT_LOCALE - Example: EN 2018 by Kony, Inc. All rights reserved 36 of 183

3. Parameters used for enabling corresponding channel build. Click the checkbox provided across the channel to enable the channel build. ANDROID_UNIVERSAL_NATIVE ANDROID_MOBILE_NATIVE ANDROID_TABLET_NATIVE IOS_UNIVERSAL_NATIVE IOS_MOBILE_NATIVE IOS_TABLET_NATIVE Important: App ID must be registered prior to the build of any Apple artifacts! Please refer to: Maintaining Identifiers, Devices, and Profiles. ANDROID_MOBILE_SPA ANDROID_TABLET_SPA IOS_MOBILE_SPA IOS_TABLET_SPA 2018 by Kony, Inc. All rights reserved 37 of 183

DESKTOP_WEB 4. Android related parameters: ANDROID_UNIVERSAL_APP_ID - Provide the Universal app (Mobile and Tablet) unique application ID, to identify your app on the device and in Google Play Store. Universal app ID is the value you enter in build UI mode at Project Settings>> Native>> Android>> Package Name. Example: com.konyappfactory.kitchensink ANDROID_MOBILE_APP_ID- Provide the unique application ID of your mobile app, to identify your app on the device and in Google Play Store. Unique application ID is the value you enter in a build UI mode at Project Settings >> Native >> Android >> Package Name. Example: com.konyappfactory.kitchensink 2018 by Kony, Inc. All rights reserved 38 of 183

ANDROID_TABLET_APP_ID - Provide the unique application ID of your tablet app, to identify your app on the device and in Google Play Store. Unique application ID is the value you enter in a build UI mode at Project Settings >> Native >> Android >> Package Name. Example: com.konyappfactory.kitchensink ANDROID_APP_VERSION - A version of the Android application used to enter in build UI mode at Project Settings >> Application >> Version. Example: 1.0.1 ANDROID_VERSION_CODE - App internal version number is used to determine the recent versions (higher numbers indicating the more recent versions). You enter the app internal version number in build UI mode at Project Settings >> Native >> Android >> Version Code. Example: An integer value such as 1. GOOGLE_MAPS_KEY_ID - To us the Google Maps Android API, you must provide Google API key https://developers.google.com/maps/documentation/javascript/get-apikey ANDROID_KEYSTORE_FILE - The keystore file which stores the key that is used to sign in the Android binary. Allowed formats include.keystore,.jks. For more information, refer official Android documentation after signing. Note: ANDROID_KEYSTORE_FILE is an optional field for Android debug mode builds. ANDROID_KEYSTORE_PASSWORD - The password for the keystore file selected. For more information, refer official Android documentation after signing. 2018 by Kony, Inc. All rights reserved 39 of 183

Note: ANDROID_KEYSTORE_PASSWORD is an optional field for Android debug mode builds. ANDROID_KEY_PASSWORD - The password to the key in the keystore file used to sign in to Android library. For more information, refer official Android documentation after signing. Note: ANDROID_KEY_PASSWORD is an optional field for Android debug mode builds. ANDROID_KEY_ALIAS - The alias of signing key inside the keystore. For references, click Sign Your App in Android Studio help. Note: ANDROID_KEY_ALIAS is an optional field for Android debug mode builds. 2018 by Kony, Inc. All rights reserved 40 of 183

5. Apple related parameters: APPLE_ID - credentials at https://developer.apple.com. The account is used to generate certificate and for signing ios app. APPLE_SIGNING_CERTIFICATES - Upload an Apple Signing Certificate to AppFactory to sign your app for ios native channels. Adding a new signing certificate: To add a new signing certificate, follow these steps: 1. Click Add drop-down list that displays the list of Credential Providers across APPLE_SIGNING_CERTIFICATES. 2018 by Kony, Inc. All rights reserved 41 of 183

2. Select a Credential Provider from the list. The Add Credentials window displays. Enter the following details to add a new signing certificate: Domain: Displays the domain name as Global Credentials (Unrestricted). Choose Kind as Apple Signing Certificates from the drop-down list. Scope: Determines where the signing certificate is used. The Global credential is available to the object on which the credential is associated and on all the child objects of the object. Typically, you must use the globalscoped credentials for jobs. Enter ID. It is an internal unique ID used to identify the credentials from jobs and other configuration. Enter Description for the signing certificate. Upload the Provision Certificate to sign the IPA. Enter a password for the uploaded provision certificate. Upload a Mobile Provisioning Profile. o For single profile, upload a mobile provision file. o For multiple profiles, you must upload a zip that contains multiple mobile provision profiles. 2018 by Kony, Inc. All rights reserved 42 of 183

Click Add. The new signing certificate is added in buildvisualizerapp project. 3. Click APPLE_SIGNING_CERTIFICATES drop-down list to find the new certificate. 4. Select the certificate. 2018 by Kony, Inc. All rights reserved 43 of 183

Note: APPLE_ID or APPLE_SIGNING_CERTIFICATES only one of the two parameters is mandatory. Note: Currently, AppFactory is not supporting wild card provisioning profiles. Important: Ensure the uploaded certificate (or) profile has not expired. If the uploaded certificate (or) profile expires, the build fails and system throws an error. APPLE_DEVELOPER_TEAM_ID - You must provide a parameter when your Apple ID is a part of multiple development teams. You can skip the parameter if you are enrolled in the Apple Developer Program as an individual. You can get a value for Apple Developer Team ID by signing in to the developer.apple.com/account and under Membership select Team ID. Note: If your first build of a project on AppFactory has a value for APPLE_ DEVELOPER_TEAM_ID, you need to enter the value for this field in each build. If the field is empty for the first build of the project, it has to remain the same for all the upcoming builds. IOS_UNIVERSAL_APP_ID - A bundle ID for Universal application (Mobile and Tablet), used to provision devices and by the operating system when the app is distributed to customers. Universal app ID is the value you enter in build UI mode at Project Settings>> Native >> iphone/ipad/watch>> Bundle Identifier. Example: com.konyappfactory.kitchensink IOS_MOBILE_APP_ID - A bundle ID for mobile application is used to provision devices and operating system when the app is distributed to customers. The value for ios_ MOBILE_APP_ID is entered in build UI mode at Project Settings >> Native >> iphone/ipad/watch >> Bundle Identifier. Example: com.konyappfactory.kitchensink 2018 by Kony, Inc. All rights reserved 44 of 183

IOS_TABLET_APP_ID - A bundle ID for a tablet application is used to provision devices and operating system when the app is distributed to the customers. The value for ios_ TABLET_APP_ID is entered in build UI mode at Project Settings >> Native >> iphone/ipad/watch >> Bundle Identifier. Example: com.konyappfactory.kitchensink IOS_APP_VERSION - A version of the ios application used to enter in build UI mode at Project Settings >> Application >> Version. Example: 1.0.1 IOS_BUNDLE_VERSION - A version of the application used to enter in build UI mode at Project Settings>> Native>iPhone/iPad/Watch>>Bundle Version. Example: 1.0.1 IOS_DISTRIBUTION_TYPE- Apple developer profile is required for signing IPAs for Apple channels build. Check Distribution methods in Xcode help for the references. The purpose of distributing the build of your app to ios Native channels is: Development: If you are building your app for testing and/or debugging. Adhoc: If you are building your app for QA and/or UAT. Enterprise: If you are building a release to distribute your app internally and your company is enrolled in Apple's Developer Enterprise Program, you must build your app in release mode. App Store: If you are building a release to distribute your app in public through an Apple App Store. You must build the app in release mode. If you are building your app to test using App Factory's DeviceFarm integration, you can select any of the above options. 2018 by Kony, Inc. All rights reserved 45 of 183

Note: Both Development and Adhoc will allow you to install and run devices (you physically control) registered in your Apple Developer account. Adhoc will allow you to test using Apple's production level app services such as Push Notifications and so on. APPLE_WATCH_EXTENSION: Click the checkbox to build ios app with Watch extension. If the checkbox is enabled, AppFactory also builds ios binary compatible for Apple watch. 2018 by Kony, Inc. All rights reserved 46 of 183

Note: Apple watch extension build can be triggered along with ios build only. 6. Protected Build: PROTECTED_KEYS is used to enable additional security in application. This field is mandatory for release-protected mode build. 2018 by Kony, Inc. All rights reserved 47 of 183

Adding New Keys to the application: Kony AppFactory provides an option to build protected binaries for both Android and ios platform using the Kony Visualizer tool. The Kony Visualizer tool allows you to add protected mode build support from AppFactory. Perform the following steps to add a new build keys for the buildvisualizerapp job. 1. Click Add drop-down list displayed across PROTECTED_KEYS. The drop-down list displays the list of Credential Providers. 2. Select a Credential Provider from the list. The Add Credentials window displays. 2018 by Kony, Inc. All rights reserved 48 of 183

Enter the following details to add a new protected keys. Domain: Displays the domain name as Global Credentials (Unrestricted). Choose Kind as Kony Protected Mode Build Keys from the drop-down list. Scope: Determines where the build keys are used. The Global credential is available to the object on which the credential is associated and on all the child objects of the object. Typically, you must use the global-scoped credentials for jobs. Enter ID. It is an internal unique ID used to identify the credentials from jobs and other configuration. Enter Description. Upload Public Key, Private Key, and Fin Keys files. Note: Fin Keys must be provided as a zip file. It should not have any sub-folder within the zip. 2018 by Kony, Inc. All rights reserved 49 of 183

Click Add. The new Kony Protected buildvisualizerappmode Build Keys is added in project. 3. Click PROTECTED_KEYS drop-down list. You can find the new build keys in the drop-down list. 4. Select the new build keys. 7. DesktopWeb and SPA related parameters: PUBLISH_FABRIC_APP enabled if user want to publish the App to Kony Cloud. Note: If you are building both DesktopWeb and SPA channels and the checkbox is selected, a combined archive is generated and published to the selected Kony Fabric environment. WEB_APP_VERSION: App version of the Web (DesktopWeb and SPA) application. The app version value is entered in the Build UI mode at Project Settings>> Application>> Version. Example: Version 1.0.1 2018 by Kony, Inc. All rights reserved 50 of 183

FORCE_WEB_APP_BUILD_COMPATABILITY_MODE: Enable the checkbox to build the web app package using the older (war) extension. It is the value that you generally enter in the Build UI mode at Project Settings>> Application>> Force Web App Build Compatibility Mode. Important:.war extension is not supported with multi-tenant environment in Kony Fabric. Note: Newer extension (zip) is only supported with V8 service pack 2 on Kony Cloud. If your app is using a lower set of plugins, keep the checkbox enabled. 8. RECIPIENTS_LIST is comma-separated list of recipients e-mails. 9. Testing related parameters: AVAILABLE_TEST_POOLS enables tests on selected device pool. 2018 by Kony, Inc. All rights reserved 51 of 183

RUN_DESKTOPWEB_TESTS_ARGUMENTS allows you to pass arguments in Maven command to the DesktopWeb tests. Example: If you pass -Dsurefire.suiteXmlFiles=resources/Testng.xml, the argument will trigger the tests present in resources/testng.xml file. If you do not pass TestNG file, Testng.xml is selected as a default file. AVAILABLE_BROWSERS allows you to select the browser to run the DesktopWeb tests. Note: Currently, AppFactory supports only Google Chrome version 68.0.3419.0 for DesktopWeb testing. RUN_DESKTOPWEB_TESTS - select the checkbox to execute DesktopWeb tests. Important: Prerequisites for testing: Appium tests must be placed under <project folder>/test/testng folder. Selenium tests (DesktopWeb tests) must be placed under <project folder>/test/testng/desktopweb. 2018 by Kony, Inc. All rights reserved 52 of 183

4.3 Running CustomHooks in Your AppFactory Project CustomHooks are custom pipelines that you can set up to run as part of the AppFactory build flow. These hooks can only run at certain stages of the build flow. You can define a custom logic as an ANT script or a MAVEN script. You can access the CustomHook features from the CustomHooks Management Console. You can access this console from a folder called CustomHooks in the Visualizer sub folder of your project. The CustomHooks Management Console opens up when you click on the CustomHooks folder. 2018 by Kony, Inc. All rights reserved 53 of 183

Note: To make use of the CustomHooks feature, you need to create a new project from the AppFactory Console. For more information, refer to the Setup section. The existing projects will still work without any impact, you cannot enable the CustomHooks feature for these projects. 4.3.1 CustomHooks Management Console The CustomHooks Management Console is a dashboard that you can use to manage your CustomHooks. The console shows Hook Points to which you can add your CustomHooks. These Hook Points specify the stages at which the parent job, buildvisualizerapp, runs the given hooks. There are three hook points, or stages, in the build flow. Pre-Build - It runs the CustomHooks after the CI process initiates and before the Build process starts. Post-Build - It runs the CustomHooks after the Build process ends and before the Test process starts. 2018 by Kony, Inc. All rights reserved 54 of 183

Post-Test - It runs the CustomHooks after the Test process ends and before the Deployment process starts. 4.3.2 Creating CustomHooks A CustomHook is a zip archive file that contains a logic written in java code and a build script to compile or run this java code. You can write your own logic to apply on the workspace of your app's code. As mentioned, the zip file should also contain a build script to compile or run the java code. This build script should be written as a build.xml file for Ant scripts, or pom.xml for Maven scripts. AppFactory extracts the uploaded zip file at the specified stage and calls the ANT or MAVEN script based on the script type selected in the Build Action parameter. 4.3.2.1 CustomHook Example This section talks about creating a simple Hello World CustomHook using Ant or Maven scripts. You need to implement your custom logic in a java code. Let's take an example of a Hello World java program. package project; public class HelloWorld { public static void main(string[] args) 2018 by Kony, Inc. All rights reserved 55 of 183

{ } System.out.println("Hello World"); } Note: Ensure that your package name matches the folder structure of your CustomHook. For example, if your folder structure is src/prog/helloworld.java, then your package name should be prog. After you create you java file, you need to create an Ant script or a Maven script. You can find more information about these scripts from the following links. Apache Ant Apache Maven Example for an Ant script Example for a Maven Script Important: You should create the hook script in such a way that you include specific goals for it. These goals can be specific jobs such as compiling the java code or building a jar file. You can call these jobs by passing them as Script Arguments in the CustomHook Parameters. A CustomHook that runs as part of a Pre-Build or Post-Build stage has direct access to the project files. You can add CustomHooks that have goals specific to your project build as well. For example, a CustomHook that configures Xcode settings for ios, or a CustomHook that configures Android permissions, and so on. Let's take an example of an Ant script for the given Hello World java program. This script should be in a build.xml file at the root location of your CustomHook zip archive. 2018 by Kony, Inc. All rights reserved 56 of 183

<project> <target name="clean"> <delete dir="build"/> </target> <target name="compile"> <mkdir dir="build/classes"/> <javac srcdir="src" destdir="build/classes"/> </target> <target name="jar"> <mkdir dir="build/jar"/> <jar destfile="build/jar/helloworld.jar" basedir="build/classes"> <manifest> <attribute name="main-class" value="project.helloworld"/> </manifest> </jar> </target> <target name="run"> <java jar="build/jar/helloworld.jar" fork="true"/> </target> </project> For information on Maintaining Environment Specific Modules in Kony Visualizer App, click here. Once you create the java file and the ant script, your hook folder structure should look like this. 2018 by Kony, Inc. All rights reserved 57 of 183

You need to then compress the hook folder to a zip archive to upload it as a CustomHook to your AppFactory Project. Once you run this CustomHook as part of any job, you'll see [ java ] Hello World in the CustomHook's console output. 4.3.2.2 CustomHook Parameters Go to the CustomHooks Management Console on your AppFactory project. Click on the Upload button on the stage at which you want to run your CustomHook. A new page opens up to create a CustomHook. This page shows the build parameters required to create the CustomHook. 2018 by Kony, Inc. All rights reserved 58 of 183

The page has the following fields: HOOK_NAME - This text field specifies the name you want to give to your CustomHook. The CustomHooks Management Console will display this name under the respective Hook Point. HOOK_CHANNEL - This drop down menu specifies the channel on which you want to run your CustomHook. This includes both Native and SPA channels. The Hook Channel parameter is set to ALL by default. 2018 by Kony, Inc. All rights reserved 59 of 183

The IPA_STAGE for ios platforms is the stage that generates the KAR file for ios builds. You can include ios specific hooks, such as hooks for Xcode settings, at this stage. Note: Currently, AppFactory supports only single-selection of Hook Channels. If you want to run the same hook for multiple channels, you will need to create multiple CustomHooks with the same Hook Archive. BUILD_ACTION - This drop down menu specifies the type of script you want to run for the CustomHook. You can choose to run either an ANT script or a MAVEN script. The Build Action parameter is set to Execute Ant by default. HOOK_ARCHIVE_FILE - This button opens a new window that you can use to navigate to and open a CustomHook zip file. 2018 by Kony, Inc. All rights reserved 60 of 183

The zip file should contain an XML file at the root location, based on the BUILD_ACTION parameter. o ANT - The zip file should contain a build.xml file at the root location. o MAVEN - The zip file should contain a pom.xml file at the root location. SCRIPT_ARGUMENTS - This text field specifies the arguments you want to pass to the CustomHook Script. These arguments are specific the targets or goals for the script. If you leave the Script Arguments empty, the CustomHook script will only execute the default goals. Note: The arguments should be separated using space. They should also be in the order you want to execute them in, from Left to Right. PROPAGATE_BUILD_STATUS - This check-box specifies whether the parent job should fail if the CustomHook execution fails. This check-box is enabled by default. 2018 by Kony, Inc. All rights reserved 61 of 183

After filling in the required parameters, you can Build the CustomHook. 4.3.3 Configuring CustomHooks After you build the CustomHooks, you can configure them from the CustomHooks Management Console. Currently, you can add upto five CustomHooks in every stage. Any CustomHook that you create is set as disabled, by default. You need to manually enable the hooks from the CustomHooks Management Console for them to execute during the build process. You can perform the following tasks from the CustomHooks Management Console. You can enable a hook by clicking on the tick icon. You can delete a disabled hook by clicking on the bin icon. o If you delete a CustomHook from the console, it will be deleted permanently. o You can only delete disabled hooks. If you want to delete an enabled hook, you need to disable it first. 2018 by Kony, Inc. All rights reserved 62 of 183

Once you enable a hook, the name shows up in blue and the icons change from Enable and Delete to Edit and Disable. The Edit and Disable buttons will only show up when you hover your cursor over a CustomHook. You can disable an enabled CustomHook by clicking on the Disable icon. You can edit a CustomHook by clicking on the Edit icon. You can drag and drop the enabled hooks to change their order of execution. 2018 by Kony, Inc. All rights reserved 63 of 183

4.3.3.1 Editing CustomHook Parameters Go to the CustomHooks Management Console on your AppFactory project. Click on the edit button on the CustomHook that you want to update. A new page opens up to update the CustomHook. This page shows the build parameters that you configured while creating the CustomHook. 2018 by Kony, Inc. All rights reserved 64 of 183

You can change any parameter while updating the CustomHook, including the job zip file. Important: Changing the name of the CustomHook on the _updatecustomhook page will rename the Hook on the CustomHooks Management Console. Uploading a new Hook Archive zip file is optional. o If you upload a new zip file, then the hook job will use it. o If you don't upload a new zip file, then the hook job will use the already existing zip file. 4.3.4 Enabling CustomHooks in Visualizer Jobs You can choose whether to run CustomHooks as part of the buildvisualizerapp job from its build parameters. 2018 by Kony, Inc. All rights reserved 65 of 183

If you disable RUN_CUSTOM_HOOKS in the build parameters, the buildvisualizerapp job will not run any CustomHooks. If you want to choose which CustomHooks to run, you can do so from the CustomHooks Management Console. 4.3.5 CustomHook Stages in Stage View When you enable a CustomHook in a parent job, the CustomHook stages also show up in the parent job's Stage View. If you enabled PROPAGATE_BUILD_STATUS in the Hook Parameters and your CustomHook fails to execute, then the you will see a failure message in the parent job's stage view. 4.3.6 CustomHooks Console Output The execution stages for CustomHooks are logged in the Console Output. These logs are available both in the job's console output and the CustomHook job's console output. Parent Job Console Output: 2018 by Kony, Inc. All rights reserved 66 of 183

CustomHook Job Console Output: You can access the CustomHook Console Output from the CustomHook build pipeline page. 2018 by Kony, Inc. All rights reserved 67 of 183

The console output has logs relevant to the CustomHook execution. It also contains logs for the jobs performed as part of the CustomHook arguments. 2018 by Kony, Inc. All rights reserved 68 of 183

4.4 Building an App 1. Once all parameters are specified in the buildvisualizerapp job, trigger the BUILD button. Build proceeds with the following steps: Check out project from Git repository. Build of Visualizer project. Signing artifacts - this step is required for Apple IPA/property list generation and Android APK Publish artifacts to S3 bucket Notify on build status by e-mail Upon build completion, notification is sent by e-mail. E-mails contains generic information about build and list of artifacts with corresponding links to S3 bucket. 2018 by Kony, Inc. All rights reserved 69 of 183

2. Check e-mail on success of all channel. 3. Check e-mail on unsuccessful build of any channel. 2018 by Kony, Inc. All rights reserved 70 of 183

4. Check e-mail on unsuccessful single channel build 2018 by Kony, Inc. All rights reserved 71 of 183

4.5 Troubleshooting This section helps to troubleshoot build and test issues at App Factory console using Jenkins interface. 4.5.1 Downloading Log Files When a build fails in the Kony App Factory, it gathers the required logs and environment details in a zip file. These details help the Kony Support team to debug the problem and provide a solution. You can download these log files and raise a support ticket with the Kony Support team to get help in resolving the build issues. You can also extract the zip file to look for the captured data and know the reason for the failures. 2018 by Kony, Inc. All rights reserved 72 of 183

1. Navigate to buildvisualizerapp job under Visualizer/Builds sub-folder. 2. Open buildvisualizerapp job and navigate to the failed stage. You can view the status of the build from the Build History section in the left pane. 2018 by Kony, Inc. All rights reserved 73 of 183

3. Click Logs to download a zip file to your local system. Extract the zip file to view the list of logs generated for the job. You can view the following build logs that resulted in the failure of the job. 2018 by Kony, Inc. All rights reserved 74 of 183

4. The MustHaves zip file in the folder is the channel on which the project is built. The zip contains the following log files. The individual logs related to the channel builds are part of the parent zip file (buildvisualizer). Note: All the sensitive information such as passwords will be sanitized as *. 4.5.2 Debugging Build Failure An administrator should be able to find the root of cause, in a scenario when the last buildvisualizerapp job fails. The administrator can then review parameters or make appropriate action to recover a Visualizer build. 1. Navigate to buildvisualizerapp job under Visualizer>> Builds sub-folder. 2018 by Kony, Inc. All rights reserved 75 of 183

2. Open buildvisualizerapp job and navigate to the failed stage. 3. Hover your mouse on the failed stage and open Logs. 4. Navigate to Building KitchenSinkApp link. 5. Expand Building KitchenSinkApp group and navigate to the failed build job. 2018 by Kony, Inc. All rights reserved 76 of 183

6. Find the failed stage on the opened job. 7. Hover the mouse over failed stage and open Logs. 8. Explore the log details and find the reason for failure. 2018 by Kony, Inc. All rights reserved 77 of 183

Find error message in Print Message Failed to create IPA file as folowing: 01:55:50 Failed to create IPA file - Navigate to the step above and expend it to look for error of IPA generation 2018 by Kony, Inc. All rights reserved 78 of 183

In case, if the error message does not show excessive information, an administrator can navigate to raw console log of a job that fails. There are several options to display Console Output. At first, the administrator can navigate to a job and select Console Output from dropdown menu under specific job id. 2018 by Kony, Inc. All rights reserved 79 of 183

Administrator can now pick the specific job to open and select Console Log form the left panel. After the Console Output in the last buildvisualizerapp job is run, administrator can scroll down to the status of jobs were launched by the buildvisualizerapp job. There are two failed jobs for ios Mobile and Tablet natives. An administrator can open Console Output of any of jobs listed in the log below by hovering mouse over job id and opening Console Output in the drop-down menu. 2018 by Kony, Inc. All rights reserved 80 of 183

When the administrator opens Console Output, he/she may look for failure and warning messages related to a stage and a step particular in the build log. 2018 by Kony, Inc. All rights reserved 81 of 183

4.5.3 Debugging Build Failure (Alternative Option) 1. Navigate to Facade job within Visualizer folder. 2. Open specific failed build which shown either unstable or failed. 3. Open Pipeline Steps. 2018 by Kony, Inc. All rights reserved 82 of 183

4. Scroll down and find unstable or failed stage. 2018 by Kony, Inc. All rights reserved 83 of 183

5. Open Log console, and open Starting building link. 6. Open Pipeline Steps. 2018 by Kony, Inc. All rights reserved 84 of 183

7. Find failed stages. 8. Open Console Log and find the reason for failure. 2018 by Kony, Inc. All rights reserved 85 of 183

4.6 Auto-Triggered Jobs Currently, there are two types of auto-triggered jobs: scm-triggered(watchers) and cron-triggered (Schedulers). Every project structure has a folder called Triggers in Visualizer sub-folder. The Triggers folder contains a job for creation of auto-triggered jobs (createtrigger) and two sub-folders, where the created jobs are stored. 4.6.1 Configuration for GitHub Perform the following steps to configure triggers on GIT server side. 1. Open the repository at GitHub in a web browser. 2. Navigate to the Settings of the current repository. Settings tab is not visible if you do not have necessary permissions. 2018 by Kony, Inc. All rights reserved 86 of 183

3. In the Settings page, find Webhooks page link on the left navigation panel. Open the Webhooks page. 2018 by Kony, Inc. All rights reserved 87 of 183

4. Create a new Webhook by clicking Add webhook button on the top right corner. 5. Provide valid login credentials to confirm your authorization, to configure Webhooks. 2018 by Kony, Inc. All rights reserved 88 of 183

6. After successful login, Webhooks configuration page opens. Add Webhook at AppFactory console. 2018 by Kony, Inc. All rights reserved 89 of 183

7. Enter the following parameters in Webhook configuration page: Compose the Payload URL (mandatory field) based on the following template: https://<jenkins URL>/github-webhook/ (last forward slash is mandatory); where <Jenkins URL>: <protocol>://<domain name>, example - https://ci.kony.com Jenkins URL format depends on git server type, here is list of examples for currently supported git servers: Bitbucket Server (Stash): Payload URL is https://<jenkins URL>/github-webhook/AWS CodeCommit - currently there is no available solution but checkout option. Other: Rest of the git server implementations use Jenknis plugin; Generic Webhook Trigger Plugin. In this case the Jenkins URL has the following format - https://<jenkins URL>/generic-webhook-trigger/invoke. Once payload URL is entered, GitHub automatically checks the https connection and offers you to disable SSL verification. Ignore this message. Content type should be selected as application/x-www-form-urlencoded Jenkins verification does not require a Secret. Leave the field empty. Select Push event option to trigger event by push to repository. Only push of code to specific branch triggers the buildvisualizer job. 2018 by Kony, Inc. All rights reserved 90 of 183

Active should be marked by default. 8. After providing the necessary parameters, click Add Webhook button. 9. On successful Webhook creation, the following screen appears. There is message in line with Webhook that contains Payload URL and events supported (in brackets). For example, https://konydem-elb-1grn3i04mhuky-1615935478.us-west-1.elb.amazonaws.com/githubwebhook/ and (push). 2018 by Kony, Inc. All rights reserved 91 of 183

10. To update or delete a Webhook select the Edit or Delete respectively. For more details on how to configure Webhooks refer to GitHub Webhook Documentation. 4.6.2 Configuration for Bitbucket To enable triggers in Stash/Bitbucket, install the Bitbucket add-on Webhook to Jenkins for Bitbucket. Log into your Bitbucket instance as an admin. Click the admin drop-down and choose Add-ons. The Manage add-ons screen appears. Click Find new add-ons from the left-hand side of the page Locate Webhook to Jenkins for Bitbucket using the search option. The results obtained include app versions compatible with your Bitbucket instance. Click Install to download and install your app. You're all set! Click Close in the Installed. For further information about add on, refer to https://marketplace.atlassian.com/plugins/com.nerdwin15.stash-stash-webhookjenkins/server/overview For configuring triggers on Bitbucket/Stash side perform the following steps: 2018 by Kony, Inc. All rights reserved 92 of 183

1. Open BitBucket repository in a web browser and navigate to Settings of the targeted repository. Settings tab is available only if you have necessary permissions. 2. Once Settings page is open, find Hooks link in the settings panel. 3. Open Hooks page. Click Enable button at the right corner of Stash Webhook to Jenkins to open Webhook configurations section. 2018 by Kony, Inc. All rights reserved 93 of 183

4. Add Jenkins URL and Repo Clone URL. Here Jenkins URL is Jenkins home page URL. Repo Clone URL is URL used for cloning of repository. Trigger Jenkins button can be used to check if you are able to trigger desired watcher Jenkins job. If successful, click enable button in bottom right corner. 2018 by Kony, Inc. All rights reserved 94 of 183

5. For further edit or disable Webhook, we can refer to same section. To edit setting in Webhook, click on edit icon just after you Webhook. 4.6.3 Configuration for AppFactory Console To setup auto-triggered job, perform the following steps: 2018 by Kony, Inc. All rights reserved 95 of 183

1. Navigate to Triggers folder under root folder of the project. 2. Click on createtrigger job. 3. Provide all required parameters (they are the same as in buildvisualizer job). Please note, that there is one additional parameter, which is called "CRON_SCHEDULE". 2018 by Kony, Inc. All rights reserved 96 of 183

4. A cron-triggered job is created and stored in "Schedulers" subfolder, If "CRON_SCHEDULE" parameter is provided. Else, an scm-triggered job is created and stored in "Watchers" subfolder. 5. Every Scheduler that is created, has a cron string in job's name to simplify job search. Refer to cron documentation at https://en.wikipedia.org/wiki/cron for cron expressions that can be set up in CRON_SCHEDULE parameter. 6. Every Watcher created has a branch name in the name of Job to simplify job search. 2018 by Kony, Inc. All rights reserved 97 of 183

4.6.4 Schedule Nightly Builds There can be a requirement to build applications at the night on regular base. Nightly builds have better performance and efficient resource allocation. Also nightly builds are used for solid product build and testing without ongoing development. Perform the following steps to configure night builds of any required Visualizer application: 1. Setup Visualizer project as a prerequisite. Refer to Setup section for more details. 2. Once Visualizer project is configured, navigate to the Visualizer folder. 2018 by Kony, Inc. All rights reserved 98 of 183

3. Navigate to Triggers folder and click to open it. Triggers folder contains all jobs necessary to schedule and run Visualizer builds by code changes. 4. Click on createtrigger link to open createtriggers job. 2018 by Kony, Inc. All rights reserved 99 of 183

5. Once the createtrigger job is displayed, there are Build with Parameters action on the left panel. Select Build with Parameters to launch configuration build that generates Schedulers or Watchers job. See section Configuration for AppFactory console above. 6. Enter all the parameters required for running the Build with Parameters job. Refer to Building Visualizer app section for more details. 2018 by Kony, Inc. All rights reserved 100 of 183

7. Specify without fail the CRON_SCHEDULE parameter corresponding to the https://en.wikipedia.org/wiki/cron expression: 0 0 * * * for nightly build. Fill all other parameters according to standard buildvisualizer job parameters. 8. Once parameters are filled, click on BUILD button to run the createtrigger job. 9. The createtriggers job creates Schedule_0 0 * * * job under Schedulers folder. This specific job is launched based on CRON_SCHEDULE expression time schedule. As we set up 0 0 * * *, it triggers the Visualizer build with parameters stored in Scheduler_0 0 * * * job and the usual flow (see section Building Visualizer app) is executed. 2018 by Kony, Inc. All rights reserved 101 of 183

4.6.5 Scheduling Custom Builds Below are the additional scheduling options you may use to build Visualizer by specific frequency. 1. Setup Visualizer project as prerequisite, as defined in Setup section. 2. Setup Scheduler job as prerequisite, as defined in Scheduling Nightly Builds (Steps 1-6). 3. Select Build with Parameters option on the left panel of createtrigger job and define CRON_ SCHEDULE parameter. For details refer to https://en.wikipedia.org/wiki/cron. 4. Once all the necessary parameters are filled, press BUILD button to generate scheduler job, which is triggered based on time set by CRON_SCHEDULE parameter. 5. Once createtrigger finishes successfully, navigate to Schedulers folder to confirm 'Scheduler job' creation. 4.6.6 Running builds by code change In addition, an administrator can configure the buildvisualizerapp job for triggering based on the change in source control. The administrator needs to configure Webhook in accordance with the Configuration for github or Configuration for Bitbucket. When Webhook is configured in project repository, the administrator needs to configure a watcher job corresponding to Configuration for App Factory console. Following scenarios can be automated using watchers: 2018 by Kony, Inc. All rights reserved 102 of 183

An administrator configures a watcher on release branch. A developer merges code changes from feature branch to release branch. Automatically the buildvisualizerapp job is triggered when changes appear in the release branch. A developer wants to build an App every time he/she pushes changes to source control. The developer works in specific branch. An administrator configures a watcher that triggers the buildvisualizerapp job on changes in the dev branch. A tester wants to build and test an App for each time the developer pushes changes to source control into specific branch. An administrator configures a watcher that triggers the buildvisualizerapp job with device pool, so that, the tester can receive test results on every code change. Every scenario depends on a different set of parameters like channels, device pool, branch, environment (development, staging, production) and other combinations. 4.7 Testing an App A tester wants to validate an App against automated test scripts. The tester can either build and test an App within single buildvisualizerapp job; manually triggering runtest job or triggering runtest job with help of timer (cron) or changes in source control. There are different testing steps which are included into Test stage: Build tests Notify on tests build status by e-mail Run tests Notify on test run status by e-mail 2018 by Kony, Inc. All rights reserved 103 of 183

4.7.1 Prerequisites Testing process supports Appium tests that needs to be placed at <root folder>/test/testng in Visualizer project. Appium tests are executed in AWS Device Farm cloud environment. It implies Appium tests are written in the way of AWS Device Farm compatibility. Appium tests are available under the root folder of the project. See the following screenshot for more information. Tests must be compiled using Maven and pom.xml available under Tests root folder (e.g. <root folder>/test/testng). 2018 by Kony, Inc. All rights reserved 104 of 183

4.7.2 Creating Device Pool Before you start running the tests you should specify list of mobile devices. These devices are limited with predefined list that AWS Device Farm supports. To specify devices, navigate to Tests folder under <project folder>/visualizer/. Once you are in the Tests folder, verify that you see all jobs listed as shown in the screenshot below: 2018 by Kony, Inc. All rights reserved 105 of 183

Run the Build with Parameters at the managepool job by clicking on the corresponding icon. The managepool configuration appears; fill the details. Once you enter the date, you can use predefined device pool for running tests. There is no limitation for the number of device pools you can create. The list of devices available in the following screenshot are taken from AWS Device Farm approved list. POOL_NAME specifies name of the device pool which will be used in dropdown menu during running tests and full build. See Building Visualizer project above. DEVICE_LIST specifies list of device models for ANDROID, ios VERSIONS, different VENDORS, MODELS of PHONES and TABLETS. You may use a filter to focus on a specific MODEL for example 2018 by Kony, Inc. All rights reserved 106 of 183

Note: If you select one or more devices using a filter and try to modify your selection by changing the filter (selecting another set of devices), the previous selection is overwritten with the current selection. After filling properties above, submit the device pool by BUILD button. When device pool BUILD is complete, managepool job passes successfully. Please verify the screenhot below where Build #1 is green and marked successfully. 2018 by Kony, Inc. All rights reserved 107 of 183

Now, a new device pool has been created and you can run tests either separately or within full build and tests process. 4.7.3 Removing Device Pool A device pool needs to be removed when it is outdated or obsolete. To remove a device pool perform the following Navigate to the folder where the pool is created. <project_root>/visualizer/tests. Once you are in the Tests folder, verify that all jobs are listed. Run the Build with Parameters at the managepool job by clicking on the corresponding icon. The managepool configuration appears. Upon launch of the managepool pick a device pool from the drop-down menu against AVAILABLE_TEST_POOLS, where all existing device pools are listed. You may use a filter to make selection faster. Once device pool is selected press BUILD button. After build pass please verify that build status is successful as shown at the picture below. You can see that the selected pool device is removed from the list. See the following screenshot 2018 by Kony, Inc. All rights reserved 108 of 183

for more details. 4.7.4 Updating Device Pool For adding or removing particular devices from a device pool which are already created, please remove device pool and recreate new one with correct devices. For more information on how to create/remove device pool, refer to Creating Device Pool and Removing Device Pool sections. 4.7.5 Running Tests Manually Once the device pools are created, the next step for build engineer is to launch tests. There are two options for triggering tests on AWS Device Farm. We describe herein the first option in which you can trigger test run independently from overall build process. Also you can include running tests into overall build flow as described in Building an App section. 2018 by Kony, Inc. All rights reserved 109 of 183

Note: Running Tests directly through runtests job independently from overall build process requires the user to have a Binary URL to be a public URL. Else, it is recommended to run the tests as a part of build process. Before you go with running tests you have to build them. Both steps are encapsulated into runtests job that simplify overall process of the test run. Follow the steps to configure the parameters to runtests job: 1. Navigate to the tests folder and select runtests job. The job as mentioned in the previous sections, run the tests on AWS Device Farm. 2. Upon launching the runtests job, Configuration of Parameters appears. 1. Fill the parameter values appropriately. Note: Below each parameter there is text hint as in what needs to be filled. Follow the text hint and fill the parameter information in the available fields. 2018 by Kony, Inc. All rights reserved 110 of 183

PROJECT_SOURCE_CODE_BRANCH specifies where tests are stored to the GIT Repository. Tests should be placed at <repository_root>/[<sub-folder>/] test/testng/<source code of tests>, where <repository_root> and <sub-folder> are configured as described in Setup section. PROJECT_SOURCE_CODE_REPOSITORY_CREDENTIALS_ID specifies GIT credentials. See section Adding new credentials for more details. Once git information is entered, test build will is performed automatically before tests run on AWS Device Farm. Native 2018 by Kony, Inc. All rights reserved 111 of 183

The following fields apply only for running tests on Native channels: ANDROID_UNIVERSAL_NATIVE_BINARY_URL specifies the location of Android universal binaries. URL should be accessible via internet. ANDROID_MOBILE_NATIVE_BINARY_URL specify URL to Android Mobile binary, generated by build or locally. URL should be accessible via internet. For example, you can specify URL to S3 taken from email notification sent by Visualizer build job. ANDROID_TABLET_NATIVE_BINARY_URL specify URL to Android Tablet binary, generated by build or locally. URL should be accessible via internet. For example, you may specify URL to S3 taken from email notification sent by Visualizer build job. IOS_UNIVERSAL_NATIVE_BINARY_URL specified the location of IOS universal binaries. URL should be accessible via internet. IOS_MOBILE_NATIVE_BINARY_URL specify URL to iphone binary, generated by build or locally. URL should be accessible via internet. For example, you may specify URL to S3 taken from email notification sent by Visualizer build job. IOS_TABLET_NATIVE_BINARY_URL specify URL to ipad binary which was generated by build or locally. URL should be accessible via internet. For example, you may specify URL to S3 taken from email notification sent by Visualizer build job. NATIVE_TESTS_URL specify URL to already compiled test project binaries. This option is optional and can be skipped. Either this option on GIT parameters should be provided. AVAILABLE_TEST_POOLS specifies device pool in drop-down menu. This device pool needs to be created upfront to run tests process. If the device pool is empty, the build fails. DesktopWeb 2018 by Kony, Inc. All rights reserved 112 of 183

The following fields apply only for tests running on DesktopWeb channels: FABRIC_APP_URL Enter the fabric app URL where the desktopweb app WAR is deployed. DESKTOPWEB_TESTS_URL allows you to enter the location of the tests binaries of the Desktop web app. AVAILABLE_BROWSERS allows you to select the browser from the drop-down list to run the DesktopWeb tests. Note: Currently, AppFactory supports only Google Chrome version 68.0.3419.0 for DesktopWeb testing. RUN_DESKTOPWEB_TESTS_ARGUMENTS allows you to pass arguments in Maven command to the DesktopWeb tests. Example: If you pass - Dsurefire.suiteXmlFiles=resources/Testng.xml, the argument will trigger the tests present in resources/testng.xml file. If you do not pass TestNG file, Testng.xml is selected as a default file. CustomHooks 2018 by Kony, Inc. All rights reserved 113 of 183

The following field apply for CustomHooks: RUN_CUSTOM_HOOKS click the checkox to allow AppFactory CustomHooks execution. Notifications - The following field is used to configure settings specific to Notifications. RECIPIENTS_LIST setting list of e-mails IDs separated by coma, up as recipients of email notifications. The following errors might help you during troubleshooting runtests job fail: Important: If you are running the tests indivdually, public URL must be provided to NATIVE_ TESTS_URL, FABRIC_APP_URL, ANDROID_MOBILE_NATIVE_BINARY_URL, ANDROID_TABLET_NATIVE_BINARY_URL, IOS_MOBILE_NATIVE_BINARY_URL, IOS_ TABLET_NATIVE_BINARY_URL, and DESKTOPWEB_TESTS URL. Important: Provide only one option for the source of test scripts: Ensure GIT or URL message is given, if both PROJECT_SOURCE_CODE_BRANCH / PROJECT_SOURCE_CODE_ REPOSITORY_CREDENTIALS_ID and TESTS_BINARIES_URL are provided. 2018 by Kony, Inc. All rights reserved 114 of 183

Important: Provide only one option for the source of test scripts: Ensure GIT or URL message is given, if both PROJECT_SOURCE_CODE_BRANCH / PROJECT_SOURCE_CODE_ REPOSITORY_CREDENTIALS_ID and TESTS_BINARIES_URL are provided. Important: Provide message for 'pool to test on' when no AVAILABLE_TEST_POOLS are provided. Important: Build parameter <parameter name> value is not valid URL!, message is given when URL provided is not in correct form. It relates to ANDROID_MOBILE_NATIVE_BINARY_URL, ANDROID_TABLET_NATIVE_BINARY_URL, IOS_MOBILE_NATIVE_BINARY_URL, IOS_ TABLET_NATIVE_BINARY_URL, TESTS_BINARY_URL. Important: The universal binary run test job tests both the Mobile and Tablet binaries based on the availability of the devices in the device pool. AppFactory does not allow running the native binary run test job (Android (or) ios) along with Universal binary run test for the same platform (Mobile (or) Tablet). You can trigger a universal binary run test job or an individual Android (or) IOS native run test job. After filling in all the required properties set, click BUILD. 2018 by Kony, Inc. All rights reserved 115 of 183

2018 by Kony, Inc. All rights reserved 116 of 183

In the above example, binaries for Android phone and tablet are provided for testing. Also, tests binaries are provided as separate bundle in S3. Device pool contains the following devices: PHONE * ANDROID * Motorola * Nexus 6 * 7.0, PHONE * ANDROID * Samsung * Galaxy S6 (Verizon) * 6.0.1, PHONE * IOS * Apple * iphone 5 * 10.0.2, PHONE * IOS * Apple * iphone 8 * 11.0, TABLET * ANDROID * ASUS * Nexus 7-2nd Gen (WiFi) * 6.0, TABLET * ANDROID * Samsung * Galaxy Tab 3 Lite 7.0" (WiFi) * 4.2.2, TABLET * IOS * Apple * ipad Air * 9.0, TABLET * IOS * Apple * ipad Pro 9.7" * 10.3.3 Upon build start, watch the progress of the build. The test run process consist of the following steps: Checkout of test project if GIT_BRANCH and GIT_CREDENTIALS are selected. Build test project Publish test binaries at S3 according to <S3 bucket>/<project name>/tests/runtests/<build number>/kitchensinkapp_testapp.zip, for example https://s3-eu-west-1.amazonaws.com/ konydemo/kitchensinkapp/tests/runtests/4/kitchensinkapp_testapp.zip Fetch binaries to run them in AWS Device Farm Create a project in AWS Device Farm Create a device pool at AWS Device Farm, taking a device list selected from the configuration Upload test binaries to AWS Device Farm 2018 by Kony, Inc. All rights reserved 117 of 183

Upload application binaries to AWS Device Farm and schedule a run. Retrieve the test results. Usually, the test run process takes around 20 min. per each device in the device pool. Only available devices in Device Farm are used for testing. All unknown devices are skipped. Also, if a particular application binary is missing, the devices for that particular OS Channel is skipped from the test run. 4.7.6 Tests Results When the project test build is complete and the test results are published at S3, e-mail notifications are sent to recipients: On Successful test build the following e-mail is sent to the recipients: 2018 by Kony, Inc. All rights reserved 118 of 183

On unsuccessful build for the tests run, the following e-mail is sent to the recipients: 2018 by Kony, Inc. All rights reserved 119 of 183

2018 by Kony, Inc. All rights reserved 120 of 183

In the final stage, the consolidated test run status is notified via e-mail. See the screenshot below for a sample mail for consolidated status. 2018 by Kony, Inc. All rights reserved 121 of 183

2018 by Kony, Inc. All rights reserved 122 of 183

To download test data fetched from AWS Device Farm, click Download File link shown in the above screenshot. Data is stored at S3 and available for review without time limitations. For example, https://konytestenv.s3.amazonaws.com/kitchensinkapp/tests/runtests/5/p HONE/Apple_iPhone_5_IOS_10.0.2/Setup_Suite/Setup_Test/Syslog.syslog is typical path to test results. The template used for the construction of path is https://s3-us-west- 1.amazonaws.com/<S3 bucket>/<project name>/tests/runtests/<build number>/[phone TABLET]/<device name>/<suitename>/<test name>/<test results files> 4.7.7 Running Tests Manually In addition to the tests run manually, there can be test that could be run within main Visualizer build without manual interactions. It is the simplest way to validate your code by launching tests right after Building the application. There is no need to specify all parameters as they are provided while running the tests manually. The results can be viewed in line to the Test Results of Manual Tests. 4.7.8 Troubleshooting Testing Issues The builds that failed during the test can be tracked for the issues that caused the failure. For analysis let us consider build #4 test run from the following screenshots of runtests job. Perform the following steps to troubleshoot the issue 2018 by Kony, Inc. All rights reserved 123 of 183

Navigate to <project folder>/visualizer/tests. Open runtests job and find the #4 build. Alternatively, find the link #4 rounded within rectangle and click to open it. 2018 by Kony, Inc. All rights reserved 124 of 183

Once the failed build is open, select the Console Output on the left panel. The Console Output Log opens on the right pane, for view. 2018 by Kony, Inc. All rights reserved 125 of 183

Scroll down to find errors in the log that caused the build to fail. For the example considered, you can trace an error related to invalid Android Tablet URL in the following screenshot. 2018 by Kony, Inc. All rights reserved 126 of 183

Check if the ANDROID_TABLET_NATIVE_BINARY_URL parameter is valid. To simplify the search for root cause, you can alternatively choose to troubleshoot the issue from the stages of Manual Testing. For more details see the following screenshot and corresponding procedure. 2018 by Kony, Inc. All rights reserved 127 of 183

Observe from the screen above that the last build is successful and all process stages are completed successfully too. However, build #4 failed. Here we have an option to navigate to a particular failed stage and review the issues there. Hover your mouse over the Fetch binaries stage of build #4. A new pop-up window is displayed. Open full log using narrow link as highlighted in the screenshot. 2018 by Kony, Inc. All rights reserved 128 of 183

The log messages in the Stage Logs window can be expanded to view more details of a single log message. See the image below for more details. 2018 by Kony, Inc. All rights reserved 129 of 183

Identify the error message as Android URL not found. Check for ANDROID_TABLET_ NATIVE_BINARY_URL parameters accordingly. 4.7.9 Auto Triggering Tests Currently, there are two types of auto-triggered test jobs: scm-triggered(watchers) and cron-triggered (Schedulers). Every project structure has folder called "Tests" in "Visualizer" sub-folder, that contains job for creation of auto-triggered jobs (createtrigger) and two sub-folders where created jobs are stored. To setup auto-triggered job, perform the following steps: 1. Go to Tests folder under project's root folder. 2. Click on createtest job. 3. Provide all required parameters (they are the same as in "Facade" job). 2018 by Kony, Inc. All rights reserved 130 of 183

Important: Please note, that there is one additional parameter, which is called "CRON_ SCHEDULE". If "CRON_SCHEDULE" parameter is given, then a cron-triggered job is created and stored in "Schedulers" sub-folder. If the parameter is not provided, a scmtriggered job is created and stored in "Watchers" sub-folder. 2018 by Kony, Inc. All rights reserved 131 of 183

2018 by Kony, Inc. All rights reserved 132 of 183

4. Check that the createtest job is complete. Important: Every Scheduler that is created, will have cron string in job's name to simplify the job search. Refer the image below. 2018 by Kony, Inc. All rights reserved 133 of 183

Important: Every Watcher that will be created, will have branch name in job's name to simplify job search. 2018 by Kony, Inc. All rights reserved 134 of 183

5. Running Kony Fabric App AppFactory User Guide 5. Running Kony Fabric App A user can develop Kony Fabric service and publish it to Kony Cloud for accessing the service while connecting to an endpoint from the Visualizer project. AppFactory automates these operations. After the process is complete, the user is provided with Kony Fabric app key and secret. The user must pass the Kony Fabric app key, secret, and Service URL to Kony Visualizer app to use the services of the Kony Fabric app. In AppFactory, Kony Fabric functionality is placed in the project folder with corresponding name Fabric. Navigate to the folder for the Fabric functionality usage. Currently, there are three basic operations which are available for Fabric apps: Fabric Export Fabric Import Fabric Publish App Versioning: In Kony Fabric, we have multiple versions of the same application. AppFactory supports versioning of the Kony Fabric app during Export (or) Import (or) Publish. App Versioning feature impacts AppFactory in various scenarios. Following flowcharts explains the process of export, import, and Publish process in AppFactory. Fabric Export: The Fabric export is used to export the existing Kony Fabric application to SCM (git in our case). The following flow chart explains the process of exporting an application from Kony Fabric. Upon configuring the parameters in the AppFactory Console for exporting a Kony Fabric app and clicking the Build button, the following process is performed at the run-time. 2018 by Kony, Inc. All rights reserved 135 of 183

5. Running Kony Fabric App AppFactory User Guide The following steps are performed at the run-time to export a Kony Fabric app from Kony Fabric: 1. During the export process, AppFactory validates certain parameters provided during configuration like APP_VERSION, BRANCH_NAME, and OVERWRITE_EXISTING. For detailed information on the parameters, refer Configuring Parameters to Export an App from Kony Fabric. 2. Upon verifying the parameters, AppFactory checks out the source code and checks for the branch name. If the branch name does not exist, the build fails. 3. If the branch name exists, AppFactory verifies the specified app_version. If the app version of the build matches with the app version of the existing Kony Fabric app in Git repository branch, AppFactory checks if there are any differences between both the apps. o If the differences in the files are found, AppFactory commits and pushes the changes. 2018 by Kony, Inc. All rights reserved 136 of 183

5. Running Kony Fabric App AppFactory User Guide o If the differences are not found, AppFactory commits and pushes the build. If the specified app_version does not match with the existing app_version: o Checks if the OVERWRITE_EXISTING checkbox is selected. (This is done during the configuration of the Kony Fabric app in AppFactory). For more information on OVERWRITE_EXISTING, refer Configuring Parameters to Export an App from Kony Fabric. If OVERWRITE_EXISTING is selected, AppFactory removes the old files and commits new files. If OVERWRITE_EXISTING is not selected, the build fails. Fabric Import: The Fabric Import is used to import an app from SCM to Kony cloud. User must configure few parameters to publish an imported Fabric app or execute a publish job. After configuring the parameters and clicking the Build button, the following process is performed at the run-time. The following steps are performed at the run-time to import an app to Kony Fabric: 2018 by Kony, Inc. All rights reserved 137 of 183

5. Running Kony Fabric App AppFactory User Guide 1. During the import process, AppFactory validates certain parameters provided during configuration like APP_VERSION, BRANCH_NAME, and OVERWRITE_EXISTING. For detailed information on the parameters, refer Configuring Parameters to Import an App to Kony Fabric. 2. Upon verifying the parameters, AppFactory checks out the source code and checks for the branch name. If the branch name does not exist, the build fails. 3. If the branch name exists, AppFactory verifies the specified app_version. If the specified app_version does not match with the Fabric app_version available in SCM at the specified branch, the build fails. If the app version of the build matches with the app version of the existing Kony Fabric app, the AppFactory checks if the OVERWRITE_EXISTING checkbox is selected. (This is done during the configuration of the Kony Fabric app in AppFactory). For more information on OVERWRITE_EXISTING, refer Configuring Parameters to Import an App to Kony Fabric. o If OVERWRITE_EXISTING is selected, AppFactory imports the app as an old version in Fabric. o If OVERWRITE_EXISTING is not selected, a new app version is imported to Fabric. Fabric Publish: The Fabric Publish is used to publish an existing application to a specific environment. 2018 by Kony, Inc. All rights reserved 138 of 183

5. Running Kony Fabric App AppFactory User Guide The following steps explains the process of publishing an application in Fabric to a specific environment. 1. During the publishing process, AppFactory validates certain parameters provided during configuration like APP_VERSION and SET_DEFAULT. 2. After validating the parameters, AppFactory publishes the app in Fabric. 3. If SET_DEFAULT is selected, the specified App_version is set as default in Fabric. You can publish multiple versions of Fabric applications in same app. But your visualizer application uses the services of a specific version in Fabric, that is set as a default version. To make the published Fabric version as the default version, select the SET_ DEFAULT check box while configuring the Fabric parameters. 5.1 Kony Fabric Export The Kony Fabric export is used to export the existing Kony Fabric application to SCM (git in our case). 2018 by Kony, Inc. All rights reserved 139 of 183

5. Running Kony Fabric App AppFactory User Guide The export job keeps track of the application code that is exported in the previous build. If there are no changes from the previous build, the push part of the pipeline is omitted. 5.1.1 Configuration The following parameters appear when the user selects Build with Parameters job action. 1. Related to Source Control PROJECT_EXPORT_REPOSITORY_URL is a repository URL required to point SCM client where to push your application code. The URL format is https://server/<path to repo>.git PROJECT_EXPORT_REPOSITORY_CREDENTIALS_ID are required to access the repository and choose where you want to store your application code. PROJECT_EXPORT_BRANCH is required to point the SCM client to the branch that pushes your application code. 2. Related to Commit details Commit related are required for SCM client, these parameters help to compose commit. 2018 by Kony, Inc. All rights reserved 140 of 183

5. Running Kony Fabric App AppFactory User Guide AUTHOR_EMAIL - Email of the author who peforms changes to the app in source control. COMMIT_AUTHOR - A user name on behalf of commit is pushed to the source control. COMMIT_MESSAGE - A message to be put into source control. OVERWRITE_EXISTING - Click the checkbox to force push to selected branch. Selecting the checkbox will overwrite the app content. 3. Related to Kony Fabric CLOUD_CREDENTIALS_ID - Kony cloud credentials. CLOUD_ACCOUNT_ID - Kony cloud account ID. FABRIC_APP_NAME - Name of the Kony Fabric application that needs to exported (or) imported (or) published. FABRIC_APP_VERSION is the version of Kony Fabric project. The default version is 1.0. 2018 by Kony, Inc. All rights reserved 141 of 183

5. Running Kony Fabric App AppFactory User Guide 4. RECIPIENTS_LIST - Enter the e-mail addresses separated by comma to notify people of the job results. 5.1.2 Exporting Once all the parameters are set, export can be triggered with BUILD button. Exporting process contains the following stages: Prepare the build node environment. Export Kony Fabric application Check if there were changes Clone Kony Fabric application from Git Configure local Git account Prettify exported JSON files and move them to SCM Push changes to remote storing artifacts Notify on export status by email 2018 by Kony, Inc. All rights reserved 142 of 183

5. Running Kony Fabric App AppFactory User Guide On successful export, the designated user receives an email alert. On unsuccessful export, the designated user receives an email alert on export failure. 2018 by Kony, Inc. All rights reserved 143 of 183

5. Running Kony Fabric App AppFactory User Guide 5.2 Kony Fabric Import Import job is responsible for uploading a Kony Fabric app from SCM to Kony Cloud. In addition, import job can publish a Kony Fabric app right after its upload to Kony Cloud. Refer parameters to specify, if a user wants to publish a Kony Fabric app or execute a publish job (see below). 2018 by Kony, Inc. All rights reserved 144 of 183

5. Running Kony Fabric App AppFactory User Guide 5.2.1 Configuration The following parameters appear when a user selects 'Build with Parameters' job action. 1. Related to Source Control PROJECT_EXPORT_REPOSITORY_URL is a repository URL required to point SCM client where the Kony Fabric application code is checked. PROJECT_EXPORT_REPOSITORY_CREDENTIALS_ID is required to access the repository and choose the stored Kony Fabric app. PROJECT_EXPORT_BRANCH is required to point the SCM client to the branch where the Kony Fabric application code is checked-in. 2. Import Options OVERWRITE_EXISTING - parameter required for overriding application if it s already present in Kony Fabric. ENABLE_PUBLISH - Once Import job execution finishes, ENABLE_PUBLISH parameter is triggered to publish the job. 2018 by Kony, Inc. All rights reserved 145 of 183

5. Running Kony Fabric App AppFactory User Guide 3. KONY FABRIC RELATED CLOUD_CREDENTIALS_ID - Kony cloud credentials. CLOUD_ACCOUNT_ID - Kony account ID. FABRIC_APP_NAME - An application ID in Kony Fabric (in most of the cases it is same as application name). FABRIC_APP_VERSION is the version of Kony Fabric. The default version is 1.0. FABRIC_ENVIRONMENT_NAME - An environment name in Kony Fabric to publish the Kony Fabric application. 4. RECIPIENTS_LIST - Enter the email addresses separated by a comma to notify the people about the job results. 5.2.2 Importing Once all the parameters are set, trigger import with BUILD button. Importing process contains the following stages: 2018 by Kony, Inc. All rights reserved 146 of 183

5. Running Kony Fabric App AppFactory User Guide Prepare the build node environment Import Kony Fabric application Clone Kony Fabric application from git Create zip file of Kony Fabric git project Notify on import status by email On successful import, the designated user receives an email alert with success details. 2018 by Kony, Inc. All rights reserved 147 of 183

5. Running Kony Fabric App AppFactory User Guide On unsuccessful import, designated user receives an email alert with failure details. 2018 by Kony, Inc. All rights reserved 148 of 183

5. Running Kony Fabric App AppFactory User Guide 5.3 Kony Fabric Publish Publish job is responsible for publishing the existing Kony Fabric application to a specific environment. 5.3.1 Configuration The following parameters appear when a user selects build with parameters job action. Publish job uses only Kony Fabric group of job parameters with one additional parameter: 1. KONY FABRIC RELATED CLOUD_CREDENTIALS_ID - Kony cloud credentials. CLOUD_ACCOUNT_ID - Kony account ID. FABRIC_APP_NAME - An application ID in Kony Fabric (in most of the cases, it is the same as application name). FABRIC_APP_VERSION - Enter the Kony Fabric app version to export. FABRIC_ENVIRONMENT_NAME - An environment name in Kony Fabric. The environment needs to be linked with Kony Fabric services. SET_DEFAULT_VERSION - Click the checkbox to make the version specified at Fabric_App_Version field as a default version for your app. 2018 by Kony, Inc. All rights reserved 149 of 183

5. Running Kony Fabric App AppFactory User Guide 2. Notifications RECIPIENTS_LIST - Enter the email addresses separated by a comma to notify the people about the job results. 5.3.2 Publishing Once all the parameters are set, trigger publish using BUILD button. Publishing process contains the following stages: Prepare the build node environment Publish Kony Fabric application Notify on Import status by email 2018 by Kony, Inc. All rights reserved 150 of 183

5. Running Kony Fabric App AppFactory User Guide On successful import, the designated user receives an email alert with the success details. On unsuccessful import, the designated user receives an email alert with failure details. 2018 by Kony, Inc. All rights reserved 151 of 183

5. Running Kony Fabric App AppFactory User Guide 5.4 Publishing a Web App A developer can build and publish Web App (SPA) to Kony Cloud. Web App is hosted in AWS based Kony Cloud, accessible by the link given during publishing. Following instructions helps to configure, build and publish Web App 5.4.1 Prerequisites A Web App need to be published manually, before configuration of the buildvisualizerapp job with SPA related parameters. The following steps help to publish SPA manually. 2018 by Kony, Inc. All rights reserved 152 of 183

5. Running Kony Fabric App AppFactory User Guide 1. Launch Visualizer and import the KichenSink Application. 2. Launch Visualizer and click on Login button to sign-in into Kony Fabric. 3. Enter Username and password. Upon successful login, you can see the default cloud along side your Username. 2018 by Kony, Inc. All rights reserved 153 of 183

5. Running Kony Fabric App AppFactory User Guide 4. If you have access to multiple clouds. Click on setting ->Click on Mobile Fabric Tab >>Choose desired cloud and environment. 2018 by Kony, Inc. All rights reserved 154 of 183

5. Running Kony Fabric App AppFactory User Guide 5. Click on Kony Fabric and choose Use Existing button, if an app already exists in MF. If not, click Create button and can create MF app. 2018 by Kony, Inc. All rights reserved 155 of 183

5. Running Kony Fabric App AppFactory User Guide 6. Choose the app you need and click on ASSOCIATE button. 7. Once that is done, build the SPA build. 2018 by Kony, Inc. All rights reserved 156 of 183

5. Running Kony Fabric App AppFactory User Guide 8. Upon successful build, go to file -> Publish to Kony Fabric. 9. MF console opens in Visualizer. Select Publish tab, and click Publish. 2018 by Kony, Inc. All rights reserved 157 of 183

5. Running Kony Fabric App AppFactory User Guide 5.4.2 Adding New Credentials Perform the following steps to add new credentials for the buildvisuazlierapp job. Credentials are given in the format of Username, password and id/description if necessary. 1. Press Add button. 2. Choose Credential provider from the list. It varies from the level at which entered credentials are visible. Select project root folder, for example KitchenSinkApp 3. Enter Username and Password and click Add. 2018 by Kony, Inc. All rights reserved 158 of 183

5. Running Kony Fabric App AppFactory User Guide 4. Select from the list the credentials that are created just now. 5. Check the selected credentials 5.4.3 Configuration A developer want to build and publish a Web App. For that reason he/she needs to configure the buildvisualizerapp job. Perform the following steps to configure Web App build and publish parameters. 2018 by Kony, Inc. All rights reserved 159 of 183

5. Running Kony Fabric App AppFactory User Guide 1. Open an app project folder and navigate to Visualizer/Builds/buildVisualizerApp. 2. Launch the buildvisualizerapp job using Build with parameters action. 3. Set Web App related parameters. See Configuration section for more details on each parameter. Parameters should be set accordingly to Configuration of the buildvisualizerapp job. 2018 by Kony, Inc. All rights reserved 160 of 183

5. Running Kony Fabric App AppFactory User Guide 5.4.4 Publishing When all parameters are set, click BUILD to build and publish a Web App (SPA). Build starts and you can see progress as shown in the screenshot below. Once build is completed successfully, e-mail notification is sent. In addition, the following e-mail is sent by Kony Support on publishing results. 2018 by Kony, Inc. All rights reserved 161 of 183

5. Running Kony Fabric App AppFactory User Guide Take Mobile Application URL and open it in browser selecting specific device model. Now the Web App is published to your environment. 2018 by Kony, Inc. All rights reserved 162 of 183

6. Working with AppFactory AppFactory User Guide 6. Working with AppFactory Working with AppFactory section explains the global settings that can be performed in the AppFactory Console. You can modify the project settings, permissions to the users, add new credentials, edit and delete the existing credentials. 6.1 Adding New Credentials 6.1.1 Adding New Cloud Credentials Perform the following steps to add new credentials for the buildvisualizerapp job. Credentials are given in the format of Username, password and id (or) description if necessary. 1. Click Add drop-down list. 2. Select a Credential Provider from the list. It varies from the level at which entered credentials are visible. Select project root folder, for example KitchenSinkApp. The Add Credentials window appears. 2018 by Kony, Inc. All rights reserved 163 of 183

6. Working with AppFactory AppFactory User Guide 3. Enter the following details to add credentials: Domain: Displays the domain name as Global Credentials (Unrestricted). Kind: Choose kind as Username with Password from the drop-down list. Scope: Determines where the credentials are used. The scope is defined as two types: o System: The credential is available to the object on the associated credential. System-scoped credentials are used for email, auth, slave connection and so on (i.e. where the Jenkins instance is using the credential). 2018 by Kony, Inc. All rights reserved 164 of 183

6. Working with AppFactory AppFactory User Guide o Global: The Global credential is available to the object on which the credential is associated and all the child objects of the object. Typically, you would use the global-scoped credentials for the things that are needed for jobs. Enter Username and Password. Enter ID. It is an internal unique ID used to identify the credentials from jobs and other configuration. Note: If the ID field is left blank, an ID will automatically be generated for jobs created using visual forms. It is recommended to specify ID when using credentials from the scripted configuration. Enter Description. Note: Description is an optional field. Click Add. The new credentials is added to the list of credentials. 4. Click the drop-down list besides CLOUD_CREDENTIALS_ID. Select the new credentials created from the list of credentials. 5. Check the selected credentials 2018 by Kony, Inc. All rights reserved 165 of 183

6. Working with AppFactory AppFactory User Guide 6.1.2 Adding new Kony Fabric App Config Perform the following steps to add Kony Fabric App configuration for building a Visualizer app. This credentials provider allows you to specify app key, secret, environment name, app name, and config URL. These details are used further to generate Kony Fabric app config file, and publish web-app. 1. Click Add drop-down list. 2. Select the Credential Provider from the list. It varies from the level at which entered credentials are visible. Select project root folder, e.g. KitchenSinkApp The Add Credentials window appears. 2018 by Kony, Inc. All rights reserved 166 of 183

6. Working with AppFactory AppFactory User Guide 3. Enter the following details to add credentials: Domain: Displays the domain name as Global Credentials (Unrestricted). Choose Kind as Kony Fabric app key, Secret and Service URL. 2018 by Kony, Inc. All rights reserved 167 of 183

6. Working with AppFactory AppFactory User Guide Enter ID. It is an internal unique ID used to identify the credentials from jobs and other configuration. Note: If the ID field is left blank, an ID will automatically be generated for jobs created using visual forms. It is recommended to specify ID when using credentials from the scripted configuration. Enter Description. Note: Description is an optional field. Environment Name: Enter the Kony Fabric environment name to which the application is published. Application Name: Enter the name of the Kony Fabric application. Enter Application Key, Application Secret, and Service URL. The Application Key, Application Secret and Service URL are generated when you publish the application to Kony Fabric environment. 2018 by Kony, Inc. All rights reserved 168 of 183

6. Working with AppFactory AppFactory User Guide 4. Validate an App name, Application Key, and Application Secret with VALIDATE button in the right bottom of the page. Important: If any parameter is incorrect, following message is provided: Invalid combination of key, secret and service URL. Important: If all parameters are valid, following message is given: This Kony Fabric app is published without any linked integration services. 5. Click Add. The new Kony Fabric App Config credentials are created. 6. Select from the list of credentials that are created just now. 7. Check the selected credentials. 2018 by Kony, Inc. All rights reserved 169 of 183

6. Working with AppFactory AppFactory User Guide 6.1.3 Adding New Source Code Repository Credentials Perform the following steps to add new source code repository credentials for the buildvisualizerapp job. Credentials are given in the format of Username, password and id (or) description if necessary. 1. Click Add drop-down list displayed across PROJECT_SOURCE_CODE_REPOSITORY_ CREDENTIALS_ID. The drop-down list displays the list of Credential Providers. 2. Select a Credential Provider from the list. The Add Credentials window displays. 2018 by Kony, Inc. All rights reserved 170 of 183

6. Working with AppFactory AppFactory User Guide 3. Enter the following details to add a new source repository credentials: Domain: Displays the domain name as Global Credentials (Unrestricted). Choose Kind as Username with Password from the drop-down list. If your repository is protected with 2fa in GitHub, add the credentials using secret text method. To add the credentials using secret text method, choose Kind as Secret Text. 2018 by Kony, Inc. All rights reserved 171 of 183

6. Working with AppFactory AppFactory User Guide Scope: Determines where the credentials are used. The scope is defined as two types: o System: The credential is available to the object on the associated credential. System-scoped credentials are used for email, auth, slave connection and so on (i.e. where the Jenkins instance is using the credential). o Global: The Global credential is available to the object on which the credential is associated and all the child objects of the object. Typically, you would use the global-scoped credentials for the things that are needed for jobs. Enter Username and Password. Enter ID. It is an internal unique ID used to identify the credentials from jobs and other configuration. Note: If the ID field is left blank, an ID will automatically be generated for jobs created using visual forms. It is recommended to specify ID when using credentials from the scripted configuration. Enter Description. Note: Description is an optional field. Click Add. The new credentials is added to the list of credentials in buildvisualizerapp project. 2018 by Kony, Inc. All rights reserved 172 of 183

6. Working with AppFactory AppFactory User Guide 4. Click PROJECT_SOURCE_CODE_REPOSITORY_CREDENTIALS_ID drop-down list. You can find the new credentials in the drop-down list. 5. Select the new credentials. 6.1.4 Adding New APPLE_ID Entries Perform the following steps to add a new Apple_ID repository credentials for the buildvisualizerapp job. Credentials are given in the format of Username, password and id (or) description if necessary. 1. Click Add drop-down list displayed across APPLE_ID. The list of Credential Providers displays. 2. Select a Credential Provider from the list. The Add Credentials window displays. 2018 by Kony, Inc. All rights reserved 173 of 183

6. Working with AppFactory AppFactory User Guide 3. Enter the following details to add new source repository credentials: Domain: Displays the domain name as Global Credentials (Unrestricted). Kind: Choose Kind as Username with Password from the drop-down list. Scope: Determines where the credentials are used. The scope is defined as two types: o System: The credential is available to the object on the associated credential. System-scoped credentials are used for email, auth, slave connection and so on 2018 by Kony, Inc. All rights reserved 174 of 183

6. Working with AppFactory AppFactory User Guide (i.e. where the Jenkins instance is using the credential). o Global: The Global credential is available to the object on which the credential is associated and all the child objects of the object. Typically, you would use the global-scoped credentials for the things that are needed for jobs. Enter Username and Password. Enter ID. It is an internal unique ID used to identify the credentials from jobs and other configuration. Note: If the ID field is left blank, an ID will automatically be generated for jobs created using visual forms. It is recommended to specify ID when using credentials from the scripted configuration. Enter Description. Note: Description is an optional field. Click Add. The new credentials is added to the list of credentials in buildvisualizerapp project. 4. Click Apple_ID drop-down list. You can find the newly added credentials in the drop-down list. Select the credentials. 2018 by Kony, Inc. All rights reserved 175 of 183

6. Working with AppFactory AppFactory User Guide 6.1.5 Adding New Android_KeyStore Credentials The keystore file is created to store the key that will be used to sign the Android binary. Perform the following steps to add Android_KeyStore entries for building a Visualizer app. The entries include Android_Keystore file and Android_KeyStore password. 6.1.5.1 Creating a New Android_KeyStore File To create Android_KeyStore File, follow these steps: 1. Click Add drop-down list displayed across ANDROID_KEYSTORE_FILE. The list of Credential Providers displays. 2. Select a Credential Provider from the list. The Add Credentials window displays. 3. Enter the following details to add a new credential: Domain: Displays the domain name as Global Credentials (Unrestricted). Choose Kind as Secret file. 2018 by Kony, Inc. All rights reserved 176 of 183

6. Working with AppFactory AppFactory User Guide Scope: Determines where the credentials are used. The scope is defined as two types: o System: The credential is available to the object on the associated credential. System-scoped credentials are used for email, auth, slave connection and so on (i.e. where the Jenkins instance is using the credential). o Global: The Global credential is available to the object on which the credential is associated and all the child objects of the object. Typically, you would use the global-scoped credentials for the things that are needed for jobs. Select a Key Store file. Enter ID. It is an internal unique ID used to identify the credentials from jobs and other configuration. Note: If the ID field is left blank, an ID will automatically be generated for jobs created using visual forms. It is recommended to specify ID when using credentials from the scripted configuration. Enter Description. Note: Description is an optional field. 4. Click Add. The new Android_KeyStore file is added to the buildvisualizerapp project. 2018 by Kony, Inc. All rights reserved 177 of 183

6. Working with AppFactory AppFactory User Guide 6.1.5.2 Creating a New Android_KeyStore Password For every keystore file created, a password must be added. To create Android_KeyStore Password, follow these steps: 1. Click Add drop-down list displayed across ANDROID_KEYSTORE_PASSWORD. The list of Credential Providers displays. 2. Select a Credential Provider from the list. The Add Credentials window displays. 3. Enter the following details to add credentials: Domain: Displays the domain name as Global Credentials (Unrestricted). Choose Kind as Secret text. 2018 by Kony, Inc. All rights reserved 178 of 183

6. Working with AppFactory AppFactory User Guide Enter Secret Text. Enter ID. It is an internal unique ID used to identify the credentials from jobs and other configuration. Note: If the ID field is left blank, an ID will automatically be generated for jobs created using visual forms. It is recommended to specify ID when using credentials from the scripted configuration. Enter Description. Note: Description is an optional field. 4. Click Add. The password for the new Android KeyStore file is added to the buildvisualizerapp project. 6.2 Deleting Credentials To delete the existing credentials, perform the following steps: 2018 by Kony, Inc. All rights reserved 179 of 183

6. Working with AppFactory AppFactory User Guide 1. Log in to AppFactory Console using your Kony Cloud account credentials. 2. Click Credentials from the left pane. It displays the list of credentials added till date. 3. Select the credentials to delete. The detailed page of the selected credentials appears. 2018 by Kony, Inc. All rights reserved 180 of 183

6. Working with AppFactory AppFactory User Guide 4. Click Delete from the left pane. A confirmation message is displayed. 5. Click Yes to delete. 2018 by Kony, Inc. All rights reserved 181 of 183

7. Results AppFactory User Guide 7. Results You can review the build and test results from the Jenkins console and Testing console locations, directly in S3, by email. 7.1 Reviewing Results at Jenkins Console Upon successful login into Jenkins console, you need to navigate to the project you are building or testing. The buildvisualizerapp job is unstable and is denoted by a corresponding icon on the left side. You can also see an error message specifying the stage that failed. You may troubleshoot the issues following instructions at Troubleshooting section. 2018 by Kony, Inc. All rights reserved 182 of 183