1

I am using Azure Pipeline to build and run test for iOS code. Those steps works fine. How to display the build status in bitbucket?

I could find a script:

#!/usr/bin/env python

import os
import requests

# Use environment variables that your CI server provides to the key, name,
# and url parameters, as well as commit hash. (The values below are used by
# Jenkins.)
data = {
    'key': os.getenv('BUILD_ID'),
    'state': 'SUCCESSFUL',  # or 'FAILED' for a script that runs when the build fails
    'name': os.getenv('JOB_NAME'),
    'url': os.getenv('BUILD_URL'),
    'description': 'The build passed.'
}

# Construct the URL with the API endpoint where the commit status should be
# posted (provide the appropriate owner and slug for your repo).
api_url = ('https://api.bitbucket.org/2.0/repositories/'
           '%(owner)s/%(repo_slug)s/commit/%(revision)s/statuses/build'
           % {'owner': 'emmap1',
              'repo_slug': 'MyRepo',
              'revision': os.getenv('GIT_COMMIT')})

# Post the status to Bitbucket. (Include valid credentials here for basic auth.
# You could also use team name and API key.)
requests.post(api_url, auth=('auth_user', 'auth_password'), json=data)

But running it using python task with print 'job name: {}'.format(os.getenv("BUILD_ID")) is giving me None. How to get the status to show up in bitbucket?

Shayki Abramczyk
  • 36,824
  • 16
  • 89
  • 114
John Doe
  • 2,225
  • 6
  • 16
  • 44

1 Answers1

2

The variable in Azure Pipeline for build id is Build.BuildId, so just replace the os.getenv("BUILD_ID") to os.getenv("BUILD_BUILDID").

script: |
  import os
  id = os.getenv('BUILD_BUILDID')
  print(id)

Result:

enter image description here

You can see here the all Azure Pipelines variables (check there the another variables you need).

Shayki Abramczyk
  • 36,824
  • 16
  • 89
  • 114