Упаковка служб SSIS (.ispac) в канал NuGet (Azure Artifacts)

Мне нужно подключить Octopus-Deploy к внешнему каналу, расположенному в канале артефактов Azure Devops. Я успешно подключился к веб-каналу, но, увидев, как я упаковал свой проект SSIS (.ispac) и проект SSDB (.dacpac) как .dacpac и .ispac, он не найдет их, поскольку ожидает, что они будут в .NuGet. формат.

Я не смог много попробовать, так как я довольно застрял.

N/A

Я вынужден помещать любой тип пакета, который я делаю, в эту ленту для подключения к Octopus и развертывания. Я должен либо сделать так, чтобы все мои пакеты были пакетами NuGet, либо найти альтернативный способ, с помощью которого Octopus Deploy может найти мои пакеты во внешнем канале Azure без NuGet. Я развертываю только SSDT: например, dacpac, ispac, sql-агенты, сценарии sql и т. д.


person A. B. Duran    schedule 11.07.2019    source источник
comment
Вы видели эту запись на форуме: help.octopus.com/t /развертывание пакетов служб SSIS/9212/2   -  person keuleJ    schedule 11.07.2019
comment
Вы благословение! Это должно помочь мне сделать это. Похоже, мне просто нужно сделать файл NuSpec, и они должны указать код того, как   -  person A. B. Duran    schedule 11.07.2019
comment
Если вы получите решение в общем блоге keuleJ, вы можете преобразовать его в ответ :-)   -  person Merlin Liang - MSFT    schedule 15.07.2019
comment
@MerlinLiang-MSFT, на самом деле мне удалось далеко продвинуться в этом. Вы можете создать файл NuSpec и использовать NuGet Pack в своем сценарии YAML в DevOps, чтобы упаковать ispac. Затем, как только вы отправите пакет артефактов в свою ленту артефактов, вы сможете получить пакет NuGet от Octopus, используя внешний канал и PAT от DevOps. В этот момент вы можете использовать вещи на стороне Осьминога. Я все еще пытаюсь набрать банкомат со стороны Octopus - я вернусь к этой теме, чтобы узнать, как это сделать, после того, как закончу ее в качестве ответа для вас!   -  person A. B. Duran    schedule 15.07.2019
comment
@MerlinLiang-MSFT, смотри ниже!   -  person A. B. Duran    schedule 27.07.2019


Ответы (1)


Вы можете создать файл NuSpec, который содержит вещи, которые вам нужно упаковать в NuGet, чтобы использовать внешний канал NuGet в Octopus. В случае SSIS вам нужно будет сослаться на файл .ispac в вашем файле nuspec следующим образом:

{

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
  <metadata>
    <id>SSIS.ODSToDW</id>
    <version>2.0.0</version>
    <authors>blah</authors>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>ODSToDW ispac</description>
  </metadata>
  <files>
    <file src="bin/Development/ODS-To-DW.ispac" target="ODS-To-DW.ispac" />
  </files>
</package>

}

Затем вы создадите конвейер в DevOps, который создаст ваше решение. В случае ispac вам нужно будет использовать SSIS Build (вы можете получить его на рынке).

После создания решения таким образом, чтобы был сформирован последний файл .ispac, вы затем используете пакет NuGet, указывающий на ваш файл .nuspec, например:

{

  - task: NuGetCommand@2
inputs:
  command: 'pack'
  packagesToPack: '**/*.nuspec'
  configuration: 'Release'
  versioningScheme: 'byPrereleaseNumber'
  majorVersion: '1'
  minorVersion: '0'
  patchVersion: '2'
  packTimezone: 'local'

}

Затем вы можете выполнить "отправление NuGet" в канал Artifact в Azure. Из которого Octopus сможет подключиться с помощью «внешнего канала NuGet», что позволит вам использовать «Развертывание пакета» из параметров процесса Octopus, из которых вы можете указать на свой конкретный артефакт, используя его имя, и сценарий powershell после развертывания позволит вам для развертывания на вашем сервере sql.

person A. B. Duran    schedule 27.07.2019