Page History
Table of Contents |
---|
...
Xray for Jenkins provides support for pipelines projects, allowing you to use Xray specific tasks.
Here is a simple example of a pipeline script using the Xray: Cucumber Features Export Task
Code Block | ||||
---|---|---|---|---|
| ||||
pipeline {
agent any
stages {
stage('Export Cucumber') {
steps {
step([$class: 'XrayExportBuilder', filePath: '\\features', issues: 'IF-1', serverInstance: '2ffc3a3e-9e2f-4279-abcd-e9301fe47bed'])
}
}
}
} |
Info | ||
---|---|---|
| ||
For Pipeline specific documentation, you may want to give a look at: |
Examples
JUnit
This is a declarative example, for JUnit based tests.
There are 3 available steps to be used in a Pipeline project:
XrayImportBuilder
-
Import test results (Junit, NUnit, etc...) from your Jenkins job to JiraXrayExportBuilder
-
Export feature files from Jira to your Jenkins job workspaceXrayImportFeatureBuilder
-
Import feature files from Jenkins to Jira
Info | ||
---|---|---|
| ||
For each of the steps mentioned above, you can check the generated syntax reference in the official Jenkins documentation website. |
Step: XrayImportBuilder (import test execution results)
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Expand | |||||||||
---|---|---|---|---|---|---|---|---|---|
| |||||||||
| |||||||||
Code Block | |||||||||
| |||||||||
pipeline {
agent any
stages {
stage('Compile'){
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'SparseCheckoutPaths', sparseCheckoutPaths: [[path: 'java-junit-calc/']]]], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'a3285253-a867-4ea7-a843-da349fd36490', url: 'ssh://git@localhost/home/git/repos/automation-samples.git']]])
sh "mvn clean compile -f java-junit-calc/pom.xml"
}
}
stage('Test'){
steps{
sh "mvn test -f java-junit-calc/pom.xml"
}
}
stage('Import results to Xray') {
steps {
|
Expand | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||
| title | Jenkinsfile example (scripted)
|
Expand | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||
|
Expand | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||
throw ex
|
JUnit multipart
This is a declarative example, for JUnit based tests using the multipart variant/endpoint which allows customization over the Test Execution issue fields.
By changing the value of the endpointName variable, you can easily adapt it for other automation frameworks (e.g. Robot framework, TestNG, NUnit).
Code Block | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||
pipeline {
|
Step: XrayExportBuilder (export cucumber features from Jira to Jenkins)
Expand | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||
|
Expand | |||||||
---|---|---|---|---|---|---|---|
| |||||||
|
Expand | |||||
---|---|---|---|---|---|
| |||||
|
Expand | |||||
---|---|---|---|---|---|
| |||||
|
Step: XrayImportFeatureBuilder (import cucumber features from Jenkins to Jira)
Expand | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||
|
Expand | |||||||
---|---|---|---|---|---|---|---|
| |||||||
|
Expand | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||
|
Info | ||
---|---|---|
| ||
For Pipeline specific documentation, you may want to give a look at: |
Cucumber Workflow suggestions
Cucumber ("standard" workflow)
...
Code Block | ||||
---|---|---|---|---|
| ||||
pipeline { agent any stages { stage('Synch (update) recent tests to Xray'){ steps { checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'a3285253-a867-4ea7-a843-da349fd36490', url: 'ssh://git@localhost/home/git/repos/automation-samples.git']]]) step([$class: 'XrayImportFeatureBuilder', folderPath: 'cucumber_xray_tests/features', lastModified: '10', projectKey: 'CALC', serverInstance: '552d0cb6-6f8d-48ba-bbad-50e94f39b722']) } } stage('Export features from Xray'){ steps { checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'a3285253-a867-4ea7-a843-da349fd36490', url: 'ssh://git@localhost/home/git/repos/automation-samples.git']]]) sh "rm -rf cucumber_xray_tests/features" step([$class: 'XrayExportBuilder', filePath: 'cucumber_xray_tests/features', filter: '11400', serverInstance: '552d0cb6-6f8d-48ba-bbad-50e94f39b722']) } } stage('Test'){ steps{ sh "cd cucumber_xray_tests && cucumber -x -f json -o data.json" } } stage('Import results to Xray') { steps { step([$class: 'XrayImportBuilder', endpointName: '/cucumber', importFilePath: 'cucumber_xray_tests/data.json', serverInstance: '552d0cb6-6f8d-48ba-bbad-50e94f39b722']) } } } } |
Using parameters
You can ask for human input in your pipeline builds by passing parameters
...