自动化软件发布的框架
项目描述
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软件包发布器可能看起来像这样
from modeltee import ReleaserBase, Command, Bumpversion, Git
import sys
class Releaser(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()
def before_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')
def do_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 以福特 Model T 命名,这是第一批在流水线上批量生产的汽车之一。
项目详情
下载文件
下载您平台对应的文件。如果您不确定该选择哪个,请了解有关 安装包 的更多信息。
源代码分发
modeltee-0.1.1.tar.gz (4.7 kB 查看哈希值)
构建分发
modeltee-0.1.1-py3-none-any.whl (8.9 kB 查看哈希值)
关闭
modeltee-0.1.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 76c2a99adbee9754d695453c9309934228f7095e2cd0dd7111e74cdccd08dd44 |
|
MD5 | 7c75eeae452c8dccd8b68f420b6571a6 |
|
BLAKE2b-256 | 4122883a8afdb8bd4e94b1b7d2678c94456de5d24b7ca18004846ba25bc530e2 |
关闭
modeltee-0.1.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 45327a522009a1594946fee2d652fb38e6d75e09c76cd0571f743bc89c688529 |
|
MD5 | 1b2d24f4e83df30b1894aada6be6312a |
|
BLAKE2b-256 | 35a9c3467ae34225c7b52061f488029bb9663935668aee6fb32302027a4b28bb |