node { def mvnHome stage('Preparation') { // for display purposes //pass login properties([parameters([credentials(credentialType: 'com.browserstack.automate.ci.jenkins.BrowserStackCredentials', defaultValue: '', description: '', name: 'BROWSERSTACK_USERNAME', required: true), [$class: 'ExtensibleChoiceParameterDefinition', choiceListProvider: [$class: 'TextareaChoiceListProvider', addEditedValue: false, choiceListText: '''single local parallel android ios ''', defaultChoice: 'single'], description: 'Run Selenium scripts on BrowserStack Automate', editable: false, name: 'TEST_TYPE']])]) git changelog: false, poll: false, url: 'https://github.com/nithyamn/bs-cucumber-testng-jenkins.git' } stage('Initiate tests on BrowserStack') { browserstack(credentialsId: "${params.BROWSERSTACK_USERNAME}",localConfig: [localOptions: '', localPath: '']) { def user = "${env.BROWSERSTACK_USERNAME}" def browser = "${params.browser}" if ( user.contains('-')) { user = user.substring(0, user.lastIndexOf("-")) } withEnv(['BROWSERSTACK_USERNAME=' + user]) { if("${params.TEST_TYPE}" == 'android'){ def app_path = "${WORKSPACE}/src/test/java" browserstackAppUploader(app_path + '/WikipediaSample.apk') { sh label: '', returnStatus: true, script: '''#!/bin/bash -l mvn test -P "${TEST_TYPE}" ''' } } else if("${params.TEST_TYPE}" == 'ios'){ def app_path = "${WORKSPACE}/src/test/java" browserstackAppUploader(app_path + '/BStackSampleApp.ipa') { sh label: '', returnStatus: true, script: '''#!/bin/bash -l mvn test -P "${TEST_TYPE}" ''' } } else{ sh label: '', returnStatus: true, script: '''#!/bin/bash -l mvn test -P "${TEST_TYPE}" ''' } } } } }