-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathJenkinsfile
More file actions
75 lines (68 loc) · 4.02 KB
/
Jenkinsfile
File metadata and controls
75 lines (68 loc) · 4.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
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), choice(choices: ['single', 'local', 'parallel - testsuite level', 'parallel - testcase level', 'appium_android', 'appium_ios', 'appium parallel'], description: 'Included Automate and App-Automate tests', name: 'Command')])])
git changelog: false, poll: false, url: 'https://github.com/nithyamn/bs-robot-framework.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.Command}" == 'single'){
sh label: '', returnStatus: true, script: '''#!/bin/bash -l
/var/lib/jenkins/.local/bin/robot web/test/SingleTest.robot
'''
}
if("${params.Command}" == 'local'){
sh label: '', returnStatus: true, script: '''#!/bin/bash -l
/var/lib/jenkins/.local/bin/robot web/test/LocalTest.robot
#robot LocalTest.robot
'''
}
if("${params.Command}" == 'parallel - testsuite level'){
sh 'echo ${WORKSPACE}'
sh label: '', returnStatus: true, script: '''#!/bin/bash -l
export PATH=~/.local/bin:$PATH
/var/lib/jenkins/.local/bin/pabot --verbose --processes 3 web/test/parallel/*.robot
'''
}
if("${params.Command}" == 'parallel - testcase level'){
sh label: '', returnStatus: true, script: '''#!/bin/bash -l
export PATH=~/.local/bin:$PATH
/var/lib/jenkins/.local/bin/pabot --testlevelsplit --processes 5 web/test/parallel/*.robot
'''
}
if("${params.Command}" == 'appium_android'){
def app_path = "${WORKSPACE}/app/test"
browserstackAppUploader(app_path + '/WikipediaSample.apk') {
sh label: '', returnStatus: true, script: '''#!/bin/bash -l
/var/lib/jenkins/.local/bin/robot --console verbose app/test/Appium_android.robot
'''
}
}
if("${params.Command}" == 'appium_ios'){
def app_path = "${WORKSPACE}/app/test"
browserstackAppUploader(app_path + '/BStackSampleApp.ipa') {
sh label: '', returnStatus: true, script: '''#!/bin/bash -l
/var/lib/jenkins/.local/bin/robot --console verbose app/test/Appium_ios.robot
'''
}
}
if("${params.Command}" == 'appium parallel'){
def app_path = "${WORKSPACE}/app/test"
browserstackAppUploader(app_path + '/WikipediaSample.apk') {
sh label: '', returnStatus: true, script: '''#!/bin/bash -l
export PATH=~/.local/bin:$PATH
/var/lib/jenkins/.local/bin/pabot --processes 3 app/test/parallel/*.robot
'''
}
}
}
}
}
}