Установите для TravisCI значение publi sh package только тогда, когда pu sh находится на master - PullRequest
0 голосов
/ 13 января 2020

Я ищу способ сделать автоматическое развертывание пакетов 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"

Как видите, процесс довольно прост

  1. Восстановление решения
  2. Создание решения
  3. Проверка решения
  4. Создание пакета NuGet
  5. 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"

Надеюсь, это понятно.

...