Я настроил TeamCity для извлечения и сборки моего репозитория github. Затем он создает артефакт .zip с файлами, которые находятся в папке «bin/Debug». После этого я хочу, чтобы он создал новый тег с номером сборки и отправил его в выпуски github, но не знаю, как это сделать.
Как развернуть артефакт в выпусках github с помощью TeamCity
Ответы (1)
После исследования я наконец нашел ответ.
- Установите github-release на серверах агентов сборки TeamCity . Чтобы установить github-release, получите последнюю версию и извлеките файл .exe куда-нибудь на диск (в моем случае C:\Program Files (x86)\github-release\bin\windows\amd64)
- Создайте новый токен безопасного доступа на github.
- Создать артефакт после сборки. Для этого перейдите к конфигурации сборки и задайте для ArtifactPaths значение MyProjectName\bin\Debug => DependentArtifact.zip.
- Создайте вторую конфигурацию сборки (этап без сборки) с именем «Развертывание».
- Добавить новый триггер в конфигурацию развертывания. Триггеры => Добавить новый триггер => Триггер завершения сборки => Задайте для конфигурации сборки первое имя сборки и установите флажок «Запускать только после успешной сборки».
- Добавить зависимый артефакт в конфигурацию сборки развертывания: Зависимости => Добавить новый артефактDependency. Установите Depend On = для вашей первой конфигурации сборки. Получить артефакты от = Последняя успешная сборка. Правила артефакта = DependentArtifact.zip
Добавить новый шаг сборки в Deploy: Шаги сборки => Добавить шаг сборки => CommandLine и вставьте следующий скрипт в поле пользовательского скрипта:
[PathToYourRepo] git tag Release-v0.%build.number%
[PathToYourRepo] git push
[PathToYourRepo] git push --tags[PathToGithubReleaseExe] release --security-token [YourSecurityToken] --user [YourGithubUserName] --repo [YourRepoName] strong> --tag Release-v0.%build.number%
[PathToGithubReleaseExe] upload --security-token [YourSecurityToken] --user [YourGithubUserName] --repo [YourRepoName] strong> --tag Release-v0.%build.number% --name Release-v0.%build.number%.zip --file DependentArtifact.zip
И это все! Возможно, есть более простой способ сделать это, но я его не нашел.