Я ищу способ сделать автоматическое развертывание пакетов NuGet после компиляции. До сих пор я успешно установил CI / CD на TravisCI, но я хочу опубликовать sh пакет NuGet только из ветви master
, а не из ветви pull request
.
Это то, что travis.yml
должен выглядеть как CI / CD с развертыванием.
language:
csharp
sudo: required
mono: none
dotnet: 3.0
os:
- linux
global:
- DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
- DOTNET_CLI_TELEMETRY_OPTOUT=true
before_script:
- dotnet restore solution.csproj
- dotnet restore solutionTest.csproj
script:
- dotnet build solution.csproj --configuration Release
- dotnet test solutionTest.csproj --configuration Release
after_script:
- dotnet pack solution.csproj --configuration Release
- dotnet nuget push bin\Release\*.nupkg -s "some-source"
Как видите, процесс довольно прост
- Восстановление решения
- Создание решения
- Проверка решения
- Создание пакета NuGet
- Pu sh пакета с исходным кодом
Что делать Я хочу
Я хочу, чтобы это происходило только в ветви master
после завершения pull request
.
Что происходит сейчас
Когда я делаю пиар в основной ветке, для того, чтобы его можно было объединить, его нужно собрать, поэтому TravisCI собирает все, что собирает, тестирует, упаковывает решение, , а также включает в себя публикацию пакета , это то, что я не хочу.
Замечания
Могу ли я настроить сценарии для запуска только в указанных c ветка? Что-то вроде следующего:
[ommited code travis.yml]
branch:
master:
after_script:
- dotnet pack solution.csproj --configuration Release
- dotnet nuget push bin\Release\*.nupkg -s "some-source"
Надеюсь, это понятно.