为 post_build 操作查找 AppVeyor 构建工件的位置
Finding location of AppVeyor built artifact for post_build action
我已经让 AppVeyor 为我构建并部署了 nuget 包,但现在我正在尝试对 nuget 包做一些事情post_build
。
基本上,我有:
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
依此类推,一切正常。
现在,我的问题在于在 build
步骤之后尝试在 post_build
中找到要处理的 nuget 包。它不在 APPVEYOR_BUILD_FOLDER
中。我在输出中看到:
Successfully created package 'C:\Users\appveyor\AppData\Local\Temp\py7750yjd6\XmlRpcCore.3.1.0.62.nupkg'.
但我没有看到任何环境变量来帮助我解决该路径,因此我可以在 deploy
之前在 post_build
中调用 powershell 命令,如下所示:
after_build:
- ps: dir
- ps: MagicCmd -InputPath "$env:<what might go here?>\XmlRpcCore.$env:TAG_VERSION.nuget"
PowerShell 会话中提供了有关生成的工件的信息:https://www.appveyor.com/docs/packaging-artifacts/#getting-information-about-uploaded-artifacts
您可以在 before_deploy
部分中使用一个简单的 PowerShell 脚本来分析该哈希并将所需的值放入环境变量,例如,以获取第一个生成的工件的路径:
before_deploy:
- ps: |
foreach ($artifactName in $artifacts.keys) {
$env:packagePath = $artifacts[$artifactName].path
break
}
- 'echo This is the path: %packagePath%'
我已经让 AppVeyor 为我构建并部署了 nuget 包,但现在我正在尝试对 nuget 包做一些事情post_build
。
基本上,我有:
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
依此类推,一切正常。
现在,我的问题在于在 build
步骤之后尝试在 post_build
中找到要处理的 nuget 包。它不在 APPVEYOR_BUILD_FOLDER
中。我在输出中看到:
Successfully created package 'C:\Users\appveyor\AppData\Local\Temp\py7750yjd6\XmlRpcCore.3.1.0.62.nupkg'.
但我没有看到任何环境变量来帮助我解决该路径,因此我可以在 deploy
之前在 post_build
中调用 powershell 命令,如下所示:
after_build:
- ps: dir
- ps: MagicCmd -InputPath "$env:<what might go here?>\XmlRpcCore.$env:TAG_VERSION.nuget"
PowerShell 会话中提供了有关生成的工件的信息:https://www.appveyor.com/docs/packaging-artifacts/#getting-information-about-uploaded-artifacts
您可以在 before_deploy
部分中使用一个简单的 PowerShell 脚本来分析该哈希并将所需的值放入环境变量,例如,以获取第一个生成的工件的路径:
before_deploy:
- ps: |
foreach ($artifactName in $artifacts.keys) {
$env:packagePath = $artifacts[$artifactName].path
break
}
- 'echo This is the path: %packagePath%'