如何解决在 Azure Devops 中缓存 Chocolatey 包
TLDR;
我有一个 Azure Devops Pipeline,它使用 Chocolatey 来安装依赖项。我想缓存下载的巧克力包,类似于缓存节点依赖项的方式(见下文)或使用缓存代理服务器。
-
是否可以缓存从 Chocolatey 下载的软件包以便在下次运行时可用?
-
如果目前还不容易实现,那么是否可以为巧克力包运行类似于 AptCacherNg 的缓存代理服务器?
当前设置
我目前在 Azure Devops 中有一个管道设置,需要来自巧克力社区的包。该步骤相当于:
choco install nasm --confirm --no-progress
我使用以下缓存节点依赖项:
steps:
- task: Cache@2
displayName: 'Cache npm packages'
inputs:
key: '**/package-lock.json,!**/node_modules/**/package-lock.json,!**/.*/**/package-lock.json'
path: '$(System.DefaultWorkingDirectory)/node_modules'
我已经考虑过是否可以为此修改密钥以检查 choco 包或使用使用此插件的重复步骤,但我不知道具体如何执行此操作。
背景
最近,其中一个模块网站离线了几个小时。当它处于离线状态时,我注意到在日志中它指出许可用户在缓存包时可能没有问题。我检查了许可证定价,似乎最多 8 台机器的单用户许可证的成本为 96 美元/年,但在许可证中声明使用它会违反商业使用条款。营业执照16美元/年/机器,最少100台机器。每年 1600 美元对于这样一个只需要安装几个软件包的小型开发团队来说,比我现在想要支付的要多一些。他们建议社区版。
解决方法
Choco 有一个方便的 --cache
选项,可让您指定缓存位置。将此选项与专用的 Cache
步骤一起使用:
- task: Cache@2
displayName: 'Cache choco'
inputs:
key: 'path_to_a_file_or_just_a_string_that_you_update_manually'
path: '$(System.DefaultWorkingDirectory)/choco_cache'
- script: choco install nasm --confirm --no-progress --cache $(System.DefaultWorkingDirectory)/choco_cache
displayName: 'install choco packages'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。