我正在研究Python应用程序也可以如何使用CI管道,但是我不确定如何创建标准工作流程。
Jenkins用于进行初始存储库克隆,然后启动tox。基本上,这是maven和/或msbuild可以获取依赖包并进行构建的地方……。tox通过pip来完成,因此在这里一切都很好。
但是,对于令人困惑的部分,管道的最后一部分是创建和上传软件包。开发人员可能会将创建的程序包上载到本地pip存储库,然后可能还会创建部署程序包。在这种情况下,它将需要是一个包含应用程序虚拟环境的RPM。我已经使用rpmvenev手动制作了一个,但是不管它是如何制作的,如何将这样的步骤添加到tox配置中?在rpmvenv的情况下,它会创建自己的virtualenv,可以这么说是一个自包含的命令。
对于这个问题,我喜欢采用Unix哲学。拥有一个可以出色地完成一件事情的工具,然后将其他工具组合在一起。Tox的目的是在一系列不同的python环境中运行测试,因此使用它来为您构建deb / rpm / etc等,我觉得这是对该工具的误用。仅使用tox来运行所有测试可能会更容易,然后根据结果在您的管道中又迈出了一步,即为刚刚测试的内容构建程序包。
Jenkins 2.x在撰写本文时相当新,似乎在构建管道方面要好得多。BuildBot正在经历大量的开发,并且已经相当容易为此建立良好的管道。
我们在工作中所做的是
该deb包也可以作为构建工件使用,类似于Jenkins 1.x所做的事情。一旦准备好进行登台,我们只需获取该软件包并将其手动升级到登台的debian repo。同上,将其滚动到产品。
我发现所有这些有用的工具:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句