如何使用Octopus Deploy发布到nuget.org?

如何使用Octopus Deploy发布到nuget.org?,nuget,octopus-deploy,Nuget,Octopus Deploy,我想使用八达通部署,让我们能够发布到nuget.org。我假设以下工作流程 捆绑要发布到nuget.org myapp.nupkg的nuspec 将上述nupkg与build.ps1脚本捆绑在一起,以便Octopus运行toPublish.nupkg 在本地部署toPublish.nupkg并运行build.ps1脚本 build.ps1脚本将API发布到nuget.org 这听起来是对的,还是我偏离了底线 如果这听起来是对的,我该如何处理nuget.org的API密钥?显然,我不能把它放在G

我想使用八达通部署,让我们能够发布到nuget.org。我假设以下工作流程

捆绑要发布到nuget.org myapp.nupkg的nuspec 将上述nupkg与build.ps1脚本捆绑在一起,以便Octopus运行toPublish.nupkg 在本地部署toPublish.nupkg并运行build.ps1脚本 build.ps1脚本将API发布到nuget.org

这听起来是对的,还是我偏离了底线

如果这听起来是对的,我该如何处理nuget.org的API密钥?显然,我不能把它放在Github回购协议中,章鱼有办法在powershell中处理变量吗

Octopus的当前版本:1.6.2.1722

理论上,我认为您可以使用OctoPack将nuget包发布到nuget.org,因为它允许您指定API密钥和要推送到的url。这就是powershell脚本的实际用途;创建nuget包并使用API键将其推送到URL

当然,我还假设您正在使用TFS,所以我的假设很差。如果您不想使用OctoPack或无法使用,也可以使用您提供的powershell脚本

然而,对于变量,八达通绝对可以做到这一点,然而对于1.6版,我不能100%确定变量功能有多广泛,因为我对1.6版几乎没有任何经验。我更熟悉2.0+

因此,对于2.0+,您可以在项目的Variables选项卡中提供变量名,以便在powershell脚本中使用,并使用{variablename}进行引用。请在此处查看官方文档:

也请记住,在2.0中,有一个选项可以将变量标记为敏感变量,以便它们在RavenDB中加密,只有在保存后才能被隐藏!。一旦该值在变量选项卡中显示为“敏感”,您就无法从八达通用户界面中看到该值。同样,我认为这是一个2.0+特性,因此使用1.6可能无法实现


如果可能的话,我建议升级到Octopus的2.0+版本,因为Octopus有大量的功能,而且速度非常快。

我确实尝试过在nuspec中放入一个nupkg文件,但是当我构建时,什么都没有显示。我认为nuget内置了一些保护措施。用于干净的内置集成。感谢您的广泛回复。我们希望在2.4发布后升级到2.4。我们使用Gitblit和TeamCity进行回购和构建系统,而不是TFS。你是说我不需要把nupkg包在nupkg里面?这个八达通是怎么工作的?请注意,我们的nupkg已经生成,并已放入TeamCity的build_artifacts文件夹中。我将分两部分回答您的问题。OctoPack是一个包含构建时的dll,用于使用MSBuild的解决方案。您只需通过NuGet安装OctoPack即可。启用后,OctoPack可以自动创建解决方案中的所有nuget包,前提是它们具有nuspec文件,并将生成的包与API密钥一起推送到URL。我不确定OctoPack是否可以与TeamCity一起使用,因为我以前从未使用过它,但请查看此处的文档:。至于将nuget包捆绑到另一个包中,您不需要这样做,除非您尝试做一些我不知道的事情。Octopus可以部署任意数量的nuget软件包,但它们可能不会在同一步骤中全部部署。你的解决方案是什么。网站?应用程序?服务蔚蓝色的也许有更简单的方法来完成你想做的事情。哦,等等,我想我误解了。我又读了你的帖子。那么,您正试图将章鱼部署的nuget包专门捆绑在您的nuget.org主机包中?我理解对了吗?没错。我有一个OSS项目,它是注定的。我想通过集成八达通来简化我们的发布内容,而不是手动下载工件然后手动上传。此外,由于我们不希望在Nuget上进行所有构建,因此我们不希望将其与TeamCity的构建步骤挂钩。