python - 用于更新 Conda-Forge 原料的持续集成
问题描述
如何设置 CI 管道以进行持续集成以更新原料?我想为新版本建立一种方式,也可以将它们推送到 conda-forge,就像它们自动用于 PyPI 一样。实际上,我发现很少有可能有用的存储库。
首先,我们需要通过这个 repo 暂存包 https://github.com/conda-forge/staged-recipes
然后需要为原料建立持续集成管道,但由于我对 DevOps 没有太多深入的想法,因此无法理解这两个存储库中的哪一个将用于设置 CI 管道
https://github.com/conda-forge/conda-forge-ci-setup-feedstock
https://github.com/conda-forge/conda-smithy
所以如果有人能指导我完成这个,我将不胜感激
解决方案
第 1 步:构建一个 PyPi 包并上传它(我想你已经这样做了)
第 2 步:安装 grayskull:grayskull repo展示了如何在 PyPi 上直接从您的包中生成一个conda install -c conda-forge grayskull
名为“meta.yaml”conda recipe
第 3 步:conda-forge/staged-recipes
在您的用户/组织空间中分叉。
第 4 步:进入recipes
目录,并在其中使用您的项目名称创建一个目录。
第5步:将meta.yaml
第2步中创建的添加到recipes/your-project-name/
第 6 步:将您的许可证文件添加到recipes/your-project-name/
第 7 步:针对conda-forge/staged-recipes
第 8 步:等到批准(并耐心等待);-)
一旦你有了一个原料,你就可以编辑 GitHub 工作流程,但automerge
工作流程应该在那里,这意味着regro-cf-autotick-bot
只要在 PyPi 上检测到新包,就会为你的原料创建一个 PR,并且 PR 会自动合并 :-)
换句话说:一旦你有了一个原料,你的项目 repo 的 CD 只需要推送到 PyPi,一段时间后你的新版本也会弹出conda-forge
。
推荐阅读
- listview - UWP Listview 冻结应用几秒钟
- mysql - 将数据加载到 mySQL 表时如何指定列名?
- scala - 我的 Scala Spark 代码不起作用,尽管 pyspark 可以正常工作
- java - WebView 无法从我在 android 9 上的网页中播放收音机中的音频
- c# - 尝试将 RoleManager 注入 ASP.NET Core 2.2 控制器时出错
- swiftui - SwiftUI NavigationLink 如何到达另一个 SwiftUI 页面?
- java - Spring 安全跨域
- java - 获取当前时间并检查时间是否已经过了一段时间
- excel - Powershell 在 Excel 中读取一个选项卡并导出为 CSV
- laravel - 如何在 Laravel+lighthouse graphql 中实现高级验证规则?