Как обновить статус сборки в Bitbucket из Azure Pipeline? - PullRequest
1 голос
/ 19 июня 2019

Я использую Azure Pipeline для создания и запуска теста для кода iOS.Эти шаги отлично работают.Как отобразить статус сборки в bitbucket?

Я мог бы найти скрипт :

#!/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)

Но запуск его с помощью задачи python с print 'job name: {}'.format(os.getenv("BUILD_ID")) дает мне None.Как получить статус для отображения в bitbucket?

1 Ответ

1 голос
/ 19 июня 2019

Переменная в Azure Pipeline для идентификатора сборки - Build.BuildId, поэтому просто замените os.getenv("BUILD_ID") на os.getenv("BUILD_BUILDID").

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

Результат:

enter image description here

Вы можете увидеть здесь все переменные конвейера Azure (отметьте там другие переменные, которые вам нужны).

...