Настройте TravisCI на публикацию пакета только тогда, когда push выполняется на главном сервере

Я ищу способ сделать автоматическое развертывание пакетов NuGet после компиляции. Пока что я успешно настроил CI/CD на TravisCI, но я хочу опубликовать пакет NuGet только изmaster филиал, а не из pull request ветвь.

Это то, что travis.yml должно выглядеть так, чтобы сделать CI/CD с deploy.

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. Отправьте пакет в источник

Чего я хочу

Я хочу, чтобы это происходило только в master ветвь после pull request завершено.

Что происходит сейчас

Когда я делаю PR для основной ветки, чтобы ее можно было объединить, ее нужно построить, поэтому TravisCI создает все, что создает, тестирует, упаковывает решение, а также включает публикацию пакета, это то, что я не делаю. не хочу.

Замечания

Можно ли настроить запуск скриптов только в определенной ветке? Примерно так:

[ommited code travis.yml]

branch:
    master:
          after_script:
             - dotnet pack solution.csproj --configuration Release
             - dotnet nuget push bin\Release\*.nupkg -s "some-source"

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

0 ответов

Другие вопросы по тегам