自动化软件发布的框架
modeltee的Python项目详细描述
modeltee是一个自动化软件发布的工具。
我发现发布时间通常包括几个手动步骤: 记住在几个地方更新版本号,提交,清理 构建、上传、制作和推送Git标记…
为什么是新工具?我可以用一个shell脚本自动完成这一切。modeltee允许您:
- 为不同的项目定义一个可重用的发布过程和子类。
- 在开始发布之前自动检查所需的工具。
- 共享可以添加检查和信息的组件。
安装时使用:
pip install modeltee
将发布过程定义为modeltee.ReleaserBase的子类。在那里 你可以控制五个步骤。
- 自动检查(check_prereqs):检查是否安装了例如git。 基本方法从正在使用的组件运行检查。如果你 重写它,建议使用super()调用它。
- 手动确认(user_confirm):向用户显示信息, 给他们一个取消的机会。基本方法表示信息 由正在使用的组件提供。
- 发布前的步骤(before_release):您可能需要设置版本 编号,重新生成,最后运行测试…
- 发布本身(do_release):上传并标记发布。 这是您必须定义的一个步骤。
- 发布后的步骤(after_release):例如,将版本号设置为 x+1.dev.
python包的一个简单发布器可能如下所示:
frommodelteeimportReleaserBase,Command,Bumpversion,GitimportsysclassReleaser(ReleaserBase):# These are components: they define checks to run before starting and# info to present, as well as providing shortcuts to use below.git=Git()twine=Command('twine')python=Command(sys.executable)bumpversion=Bumpversion()defbefore_release(self):self.bumpversion('--new-version',self.version,'minor')self.python('setup.py','sdist')self.git('commit','-am','version number -> {}'.format(self.version))self.git('push')defdo_release(self):self.twine('upload','dist/foo-{}.tar.gz'.format(self.version))self.git('tag',str(self.version))self.git('push','--tags')if__name__=='__main__':Releaser.main()
你可以这样运行:
./release.py 1.3
modeltee是以fordModel T命名的, 第一批在装配线上批量生产的汽车之一。