Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languageyml
title/azure-pipelines.yml
parameters:
- name: "testplan"
  type: string
  default: ""

trigger:
- main

resources:
  webhooks:
    - webhook: "MyWebhookTrigger"             ### Webhook alias
      connection: "MyWebhookConnection"       ### Incoming webhook service connection

pool:
  vmImage: ubuntu-latest

steps:

- bash: |
    echo ${{ parameters.testplan }}
  displayName: '(debug) print testplan parameter'

- script: dotnet restore
  displayName: 'install build dependencies'

- script: |
    dotnet test -s nunit.runsettings
  displayName: 'Run tests'
- bash: |
    set -x
    export token=$(curlcurl -o - -H "Content-Type: application/json" -X POST -multipart/form-data "{ \"client_id\": \"$CLIENT_ID\",\"client_secret\": \"$CLIENT_SECRET\" }" "$(xray_endpoint)/api/v2/authenticate"| tr -d '"')  
    curl -o - -H "Content-Type: text/xml" -H "Authorization: Bearer $token" --data  -u '$(jira_user):$(jira_password)' -F "file=@./bin/Debug/net5.0/TestResults/nunit_webdriver_tests.xml"  "$(xrayjira_server_endpointurl)/rest/apiraven/v22.0/import/execution/nunit?projectKey=CALC$(project_key)&testPlanKey=${TESTPLAN}"
  displayName: 'Import results to Xray cloudserver'


Xray endpoint's base URL and the API key credentials (i.e. client id + client secret) are defined in Azure DevOps as variables. These may be marked as secret.

  Image RemovedImage Added



Automation for Jira configuration

  1. create a new rule and define the "When" (i.e. when it to should be triggered ), to be "Manually triggered"

Image RemovedImage Added

2. define the condition so that this rule can only be executed from Test Plan issue

Image RemovedImage Added

3. define an action (i.e. the "Then") as "Send web request" and configure it as follows

Image RemovedImage Added 


  • the web request URL provided above is from Azure DevOps API, for queueing builds, and follows this syntax:
  • authentication is done using the organization name plus the personal access token, created earlier in Azure DevOps, as the login:password pair used to calculate the Base64 content of the Authorization header
  • the "Content-Type" header should be "application/json"
  • the HTTP POST body content, defined in the "Custom data" field, will be used to identify the build definition and also the original Test Plan issue key; 

    Code Block
    languagejs
    titlecustom data (i.e. HTTP body content)
    collapsetrue
    {
        "parameters": "{ \"testplan\": \"CALC-1198{{issue.key}}\" }", 
        "definition":  {
                           "id": 3
                       }
    }
    Expand
    titleHow to find the (build) definition id?

    Note: to find the definition id, you can click on the pipeline in Azure DevOps and its id is shown as part of the URL

...

After publishing the rule, you can go to the screen of an issue and trigger a pipeline run in Azure DevOps.

Image RemovedImage Added



In this case, since the pipeline was configured to report results back to Xray, a new Test Execution would be created and linked back to the source Test Plan where the automation was triggered from.

Image RemovedImage Added

Image RemovedImage Added

References