Немного поздно для этого ответа ...
Во-первых, используйте msbuild вместо xbuild, поскольку xbuild устарел.
Теперь вам нужна успешная сборка, а также продвижение выпуска к загрузкам битбакета.
Вот как это сделать:
1. Создайте пароль приложения для владельца репозитория.
Войдите в Bitbucket как владелец репозитория (также как пользователь, который будет загружать файлы) и перейдите в Bitbucket Настройки> Пароли приложений.
Создайте новый пароль приложения с разрешениями на запись в свои репозитории и обратите внимание на сгенерированный пароль, который появляется на экране. Имя пароля предназначено только для справки, поэтому используйте "Pipelines" или любое другое имя, которое вам нравится.
![Пароль приложения](https://i.stack.imgur.com/YYpgM.png)
Теперь у вас должно быть два значения, которые понадобятся вам на следующем шаге.
<username>: Bitbucket username of the repository owner (and also the user who will upload the artifacts)
<password>: App password as generated by bitbucket
2. Создайте переменную среды Pipelines с токеном аутентификации.
Определите новую переменную безопасной среды в настройках ваших конвейеров:
- Имя параметра:
BB_AUTH_STRING
- Значение параметра:
<username>:<password>
(с использованием значений из шага 1)
Вы можете определить эту переменную среды либо в настройках репозитория, либо в настройках учетной записи, которой принадлежит репозиторий.
В приведенном ниже примере показаны настройки переменной среды индивидуальной учетной записи, где репозиторий принадлежит физическому лицу. (Обратите внимание, что в случае, когда репозиторий принадлежит группе, вы должны настроить переменные среды в настройках группы, чтобы они были видны в конвейерах.)
![введите здесь описание изображения](https://i.stack.imgur.com/7SEPK.png)
3. Включите конвейер для развертывания артефактов с помощью curl и Bitbucket REST API.
Сначала добавьте строку, чтобы заархивировать каталог выпуска:
- zip -j bin/Release.zip bin/Release/
Возможно, в конвейере bash не установлен zip. Чтобы установить zip, добавьте в конвейер следующие строки перед указанной выше командой:
- apt-get update
- apt-get -y install zip
Теперь, наконец, добавьте команду curl, которая использует Bitbucket REST API:
- curl -X POST --user "${BB_AUTH_STRING}" "https://api.bitbucket.org/2.0/repositories/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}/downloads" --form files=@"bin/Release.zip"
При желании вы можете удалить ненужный zip-файл релиза из каталога bin, так как zip-файл уже находится в загрузках Bitbucket:
- rm -f bin/Release.zip
Вот полный файл pipeline.yml:
image: mono
pipelines:
default:
- step:
script:
- nuget restore
- MONO_IOMAP=case msbuild /p:Configuration="Release" /p:Platform="AnyCPU" Solution.sln
- apt-get update
- apt-get -y install zip
- zip -r bin/Release.zip bin/Release/
- curl -X POST --user "${BB_AUTH_STRING}" "https://api.bitbucket.org/2.0/repositories/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}/downloads" --form files=@"bin/Release.zip"
- rm -f bin/Release.zip
Обратите внимание, что ваш каталог выпуска может отличаться от приведенного выше примера
person
Samar Rizvi
schedule
13.09.2018