use*_*711 5 teamcity nuget octopus-deploy proget
我刚刚设置了TeamCity来自动化我们的构建,我们当前的解决方案同时具有开发和主分支.我想要实现的是让开发分支构建并发布到我们的ProGet安装上的开发NuGet feed,然后将主分支发布到ProGet服务器上的Main NuGet feed.
我们正在使用章鱼部署来部署软件包,在TeamCity中我们安装了章鱼部署插件,如果我勾选框来运行OctoPack,它会构建软件包并在构建完成时显示为工件.如果我尝试在TeamCity中使用NuGet Pack构建步骤,我会在其中一个项目中收到以下错误:
[08:33:49] : [pack] Attempting to build package from 'xxx.csproj'.
[08:33:50]W: [pack] Unable to find 'xxx.exe'. Make sure the project has been built.
Run Code Online (Sandbox Code Playgroud)
该项目已经建成并且与OctoPack一起使用,那么为什么它不能与NuGet Pack一起使用?我们正在构建五个项目,前四个项目运行正常,一个是控制台应用程序,一个是mvc网站,两个是类库.不起作用的是Windows服务.
这里的最终目标是将这些包发布到ProGet上的私有Feed.我不介意使用OctoPack,但在我脑海中想要从TeamCity中删除该依赖,但我可以忍受它.但是,当我尝试使用NuGet Publish运行器时,如何选择发布已创建的任何NuGet工件?
我一直在谷歌搜索疯狂,我找不到任何有用的链接,描述你应该输入什么,我真的很感激任何有用的评论/答案.
我们正在使用TeamCity的8.15版.
Ste*_*man 10
希望以下内容至少可以解决您的部分问题; 主要是与如何发布打包工件有关的位.
NuSpec方法
使用NuGet Pack
构建步骤时,您可以指定Output Directory
,这将确定包的输出位置.您可以将其指定为checkout目录的相对路径,最好将其定义为构建参数,例如%system.PackageDeployOutput%
您将在下一步中使用它...:
接下来,指定NuGet Publish
构建步骤,填写Package Source/API密钥等,并指定要上载的Packages
%system.PackageDeployOutput%\*.nupkg
这将获取上一步中的包输出.我已经非常有效地使用了它,参数化方法鼓励所有构建中的约定.
OctoPack支持
如果你正在使用OctoPack的MsBuild构建步骤,你可以通过声明一个名为的系统参数来使用类似的方法
system.OctoPackPublishPackageToFileShare = %teamcity.build.checkoutDir%\%system.PackageDeployOutput%
(注意与上面相同的参数)
您可以将这些声明为根项目参数,这样您就可以充分利用这两个方面.我首选的打包方法目前是将nuspec文件用于可部署的端点.我发现OctoPack在更复杂的部署方面有点开销(对于基本的MsBuild项目来说很好).
归档时间: |
|
查看次数: |
8075 次 |
最近记录: |