Поиск местоположения встроенного артефакта AppVeyor для действия post_build - PullRequest
0 голосов
/ 16 января 2020

У меня был AppVeyor, собирающий пакеты nuget и развертывающий их для меня, но сейчас я пытаюсь сделать что-то post_build для пакета nuget.

Итак, в основном, у меня есть:

build:
  project: XmlRpcCore.sln
  parallel: true
  verbosity: minimal
  publish_nuget: true
  publish_nuget_symbols: false

, а также:

deploy:
  - provider: NuGet
    name: nuget_release
    api_key:
      secure: MJz3DvmtiuNK6IVsPbxR3gWiSCnhKqm6tmPsjdRDgwGx9L2PQSSZ1eE7YS8dkZhx
    skip_symbols: true
    on:
      appveyor_repo_tag: true

и т. Д., И все работает нормально.

Теперь моя проблема заключается в попытке найти пакет nuget для обработки в post_build после build шаг. Он не находится в APPVEYOR_BUILD_FOLDER. Я вижу в выводе:

Successfully created package 'C:\Users\appveyor\AppData\Local\Temp\1\py7750yjd6\XmlRpcCore.3.1.0.62.nupkg'.

, но я не вижу переменных среды, которые бы помогли мне с этим путем, чтобы я мог вызвать команду powershell в post_build до deploy, например так:

after_build:
 - ps: dir
 - ps: MagicCmd -InputPath "$env:<what might go here?>\XmlRpcCore.$env:TAG_VERSION.nuget"

1 Ответ

1 голос
/ 21 января 2020

Информация о сгенерированных артефактах доступна в сеансе PowerShell: https://www.appveyor.com/docs/packaging-artifacts/#getting -information-about-uploaded-artifacts

В разделе before_deploy можно иметь простой сценарий PowerShell, анализируя что ха sh и помещение нужного значения в переменную окружения, например, чтобы получить путь к первому сгенерированному артефакту:

before_deploy:
- ps: |
    foreach ($artifactName in $artifacts.keys) {
      $env:packagePath = $artifacts[$artifactName].path
      break
    }
- 'echo This is the path: %packagePath%'
...