Bitbucket конвейеры.net deploy
Привет, ребята, я пытаюсь использовать новые инструментальные конвейеры из bitbucket. У меня есть несколько консольных приложений.NET (не Core app), которые я хочу собрать и скачать. Я нашел эту страницу, которая говорит, что я могу использовать моно для создания своего проекта. Я использую этот файл.yml, чтобы построить его.
image: mono
pipelines:
default:
- step:
script:
- nuget restore
- MONO_IOMAP=case xbuild /t:Build /p:Configuration="Release" /p:Platform="Any CPU" Solution.sln
Сборка прошла успешно, но теперь я застрял с загрузкой моего приложения (exe со всеми dll). Я обнаружил, что я могу использовать битовую загрузку. Но как скачать мою папку для развертывания? Здесь я обнаружил, что могу заархивировать некоторые файлы, а затем поместить их в загрузочные файлы. Но как я могу использовать это с моно и как я могу сжать всю папку и затем загрузить ее?.. Я не против использовать что-то еще, например моно. Спасибо за любые советы:)
2 ответа
Mono
построен на debian:wheezy
любые команды linux, которые вы запускаете в части сценария файла YML, могут помочь вам извлечь файл до того, как BitBucket Pipelines сбросит контейнер. В приведенном вами примере в конце есть команда POST, которая развертывает артефакт для загрузок в Bitbucket.
curl -v -u $BB_ACCESS -X POST https://api.bitbucket.org/2.0/repositories/$BITBUCKET_REPO_OWNER/$BITBUCKET_REPO_SLUG/downloads/ -F files=@aqua_lambda.zip
Это объясняет переменные среды $BB_ACCESS
далее, другие загружаются во время выполнения для вас.
Вам нужно будет найти путь к файлу, который моно компилирует, и откорректировать код примера, чтобы перейти к загрузкам Bitbucket, или Amazon s3 также является хорошим вариантом.
Немного опоздал на этот ответ...
Во-первых, используйте msbuild вместо xbuild, поскольку xbuild устарела.
Теперь, что вам нужно, так это успешной сборки, а также подтолкнуть релиз к загрузке битбакетов.
1. Создайте пароль приложения для владельца репозитория
Войдите в Bitbucket как владелец репозитория (также пользователь, который будет загружать файлы) и перейдите в Настройки Bitbucket > Пароли приложений.
Создайте новый пароль приложения с разрешениями на запись в свои репозитории и запишите сгенерированный пароль, который появляется. Имя пароля только для вашей справки, поэтому используйте "Конвейеры" или любое другое имя, которое вам нравится.
Теперь у вас должно быть два значения, которые вам понадобятся для следующего шага.
<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 с токеном аутентификации
Определите новую безопасную переменную среды в ваших настройках Pipelines:
- Имя параметра:
BB_AUTH_STRING
- Значение параметра:
<username>:<password>
(используя значения из шага 1)
Вы можете определить эту переменную среды либо в настройках хранилища, либо в настройках учетной записи, которой принадлежит хранилище.
В приведенном ниже примере показаны параметры для отдельной переменной среды учетной записи, где хранилище принадлежит отдельному лицу. (Обратите внимание, что в случае, когда команде принадлежит хранилище, необходимо настроить переменные среды в настройках команды, чтобы они были видны в конвейерах.)
3. Включите конвейер, чтобы развернуть артефакты с помощью curl и API-интерфейса Bitbucket REST.
Сначала добавьте строку, чтобы заархивировать ваш релиз dir:
- 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
Вот полный pipe.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
Обратите внимание, что ваш каталог выпуска может отличаться от приведенного выше примера