Concourse is a CI/CD tool available on-premises, highly focused on pipelines.
Xray does not provide a specific plugin for Concourse. However, similarly to CircleCI, Gitlab and other tools, it is easy to configure a pipeline and integrate it with Xray.
For this, you may simply take advantage of Xray's REST API for submitting results for example.
JUnit example
In this scenario, we want to get visibility of the automated test results from some tests implemented in Java, using the JUnit framework.
This recipe could also be applied for other frameworks such as NUnit, TestNG or Robot.
The tests are implemented in a JUnit class (stored in a git repository) as follows.
What concerns Concourse itself, we start by setting up a pipeline based on a YAML configuration file.
--- resources: - name: repo type: git source: uri: https://example.com/java-junit-calc.git username: john password: xxxxxxx jobs: - name: tests plan: - get: repo trigger: true - task: mvn-test config: platform: linux image_resource: type: docker-image source: repository: maven inputs: - name: repo run: path: bash args: - -c - | set -e cd repo/java-junit-calc mvn test curl -H "Content-Type: multipart/form-data" -u admin:admin -F "file=@target/surefire-reports/TEST-com.xpand.java.CalcTest.xml" "http://jiraserver.example.com/rest/raven/1.0/import/execution/junit?projectKey=CALC"
Note that this file is just an example; you should avoid hardcoded usernames, passwords in the .yml file.
After preparing the pipeline configuration file, it needs to be submitted to Concourse.
fly -t tutorial set-pipeline -p java-junit-calc -c pipeline.yml
You can open your browser (e.g. http://127.0.0.1:8080/teams/main/pipelines/java-junit-calc/jobs/tests/) and execute/check the execution progress there.
In order to submit those results, we'll just need to invoke the REST API (as detailed in Import Execution Results - REST).
Please note
The Jira user (i.e. username and password) mentioned in the configuration below must exist in the Jira instance and have permission to Create Test and Test Execution Issues.
In.circleci/config.ym
l a "step" must be included that will use "curl" in order to submit the results to the REST API.
curl -H "Content-Type: multipart/form-data" -u $jira_user:$jira_password -F "file=@target/surefire-reports/TEST-com.xpand.java.CalcTest.xml" "$jira_server_url/rest/raven/1.0/import/execution/junit?projectKey=CALC"
We're using "curl" utility that comes in Unix based OS'es but you can easily use another tool to make the HTTP request; however, "curl" is provided in the container used by CircleCI.