【发布时间】:2020-11-07 21:12:52
【问题描述】:
我们的服务器上有一个 Azure DevOps Server 2019,无法访问 Internet,因此上游资源无法工作。 我们如何使用开发和 CI/CD 所需的包(npm 和 nuget)填充它?
【问题讨论】:
我们的服务器上有一个 Azure DevOps Server 2019,无法访问 Internet,因此上游资源无法工作。 我们如何使用开发和 CI/CD 所需的包(npm 和 nuget)填充它?
【问题讨论】:
您的项目在管道运行期间将需要缺少的 nuget/npm 包,因此您必须确保您的离线机器可以访问这些包。
这里有两张关于如何在离线机器中恢复 nuget/npm 包的票,请参阅:
Is it possible to create a cache of nuget packages for computers without internet
How to install NodeJS project locally without internet connection
综上所述,我们需要在一台联网的机器上恢复丢失的包,并将依赖包分发(复制或文件共享)到离线机器。然后您可以使用 CMD 任务调用 nuget/npm 命令为您的项目安装缺少的包。
【讨论】:
您可以通过手动或自动两种方式执行此操作。
这两种方式都需要您知道要推送的位置,并且可以在 Azure Devops 中找到,方法是转到 Collection > Project > Artifacts > Select your feed > 单击“Connect to Feed”按钮并复制“Push a Package”命令。
Ex: nuget.exe push -Source "MyNugetFeed" -ApiKey AzureDevOps my_package.nupkg
手动方法要求您使用上面显示的 nuget push 命令将 nuget 包推送到 Azure Devops Feed。如果您没有 nuget 包,则必须使用 nuget pack 命令创建一个。
自动方法通过使用带有 nuget 任务的构建定义来打包您的 nuget 包并将其推送到 Azure Devops 源。这些可以在 Collection > Project > Pipelines > Builds 中找到。使用 NuGet 任务填充您的提要。
这里有详细解释:https://docs.myget.org/docs/how-to/publish-nuget-packages-from-azure-devops-pipelines
【讨论】: