Упаковка служб SSIS (.ispac) в канал NuGet (артефакты Azure) - PullRequest
0 голосов
/ 11 июля 2019

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

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

N / A

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

1 Ответ

1 голос
/ 27 июля 2019

Вы можете создать файл 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 push» на ваш канал Artifact в лазури.Из которого Octopus сможет подключаться с помощью «внешнего канала NuGet», который позволит вам использовать «Deploy Package» из параметров процесса Octopus, из которого вы можете указать свой конкретный артефакт, используя его имя, а сценарий PowerShell после развертывания позволитразвернуть на вашем сервере sql.

...