Azure Pipeline - документ по сборке и генерации

Мой проект - это AspNet Core 2.2 Api, я создаю его в Azure Pipelines (классический). Я хочу сгенерировать документ swagger во время сборки конвейера Azure. Для этого я использую Swashbuckle.AspNetCore.Cli и документы в Retrieve Swagger Directly from стартовая сборка

  1. У меня для задачи Use .NET Core установлено значение 2.2 в начале работы.
  2. Я установил инструменты с помощью задачи.NET Core с помощью настраиваемой команды инструмента с аргументамиinstall swashbuckle.aspnetcore.cli --version 5.0.0-rc4 --global, похоже, это сработало; Если я снова запущу эту задачу, она выйдет из строя с сообщением, что инструмент уже установлен.
  3. Затем в моей CI Build я добавил задачу.NET Core с настройками

    • команду на Custom
    • Путь к проекту (ам) к пути к файлу csproj
    • Пользовательская команда для swagger
    • Аргументы в пользу tofile --output $(Build.ArtifactStagingDirectory)/swagger.json $($(Build.ArtifactStagingDirectory)_Dxxxxx.Api.dll v1

Я получаю эту ошибку No executable found matching command "dotnet-swagger"

Помогите!

1 ответ

Вот рабочий пример с использованием JAR, поддерживаемого командой Swagger Codegen.

Я использовал публичный майкрософт speech-to-text-api-v3API, но не стесняйтесь его менять.

      trigger:
  - master

variables:
  jar_version: 3.0.29


- job: swagger_client
  pool:
    vmImage: 'ubuntu-latest'
  steps:
  - task: JavaToolInstaller@0
    inputs:
      versionSpec: '11'
      jdkArchitectureOption: 'x64'
      jdkSourceOption: 'PreInstalled'
    displayName: 'Set-up Java'
  - script: |
      java -version
      wget https://repo1.maven.org/maven2/io/swagger/codegen/v3/swagger-codegen-cli/$(jar_version)/swagger-codegen-cli-$(jar_version).jar -O swagger-codegen-cli.jar
      java -jar swagger-codegen-cli.jar generate \
        -i https://westus.dev.cognitive.microsoft.com/docs/services/speech-to-text-api-v3-0/export\?DocumentFormat\=Swagger\&ApiName\=Speech%20to%20Text%20API%20v3.0 \
        -l python \
        -o lib/python-client
  - task: DownloadPipelineArtifact@2
    inputs:
      patterns: 'python-client/**'
      path: $(Build.SourcesDirectory)/lib/python-client
Другие вопросы по тегам