编写类似shell的Python脚本来控制持续构建。
项目描述
我过去经常编写小的bash脚本,用于创建虚拟环境,并使用我构建机器上安装的几个Python版本之一执行 python setup.py 和 nosetests 命令。但由于bash脚本在Windows上不受支持,所以我希望用Python来编写这个脚本。
cish 是一组实用函数,用于编写类似bash的Python脚本,用于处理多个已安装的Python解释器。
让我们开始吧!
import cish
cish.rm("build")
cish.default.pip("install", "nose")
cish.default.python("setup.py", "build")
cish.default.nosetests()
这将删除(如果存在)包含所有内容的 build 目录,安装 nose,并构建和测试软件包。
default 是一个“环境”,由一个Python解释器、库路径以及如 pip 之类的实用程序组成。 default 是执行脚本的解释器的环境。
我们还可以使用不同的解释器
import cish
env = cish.from_interpreter("path/to/python")
env.python("setup.py", "build")
env.nosetests()
Python解释器的安装位置通常取决于测试机器。我们可以在几个位置之一放置一个简单的JSON文件,例如在 /etc/cish.json 中,以指定其位置
{
"2.6.9": "/opt/python2.6.9/bin/python",
"2.7.8": "/opt/python2.7.8/bin/python"
}
然后我们可以在我们的脚本中选择解释器,比如由jenkins设置的环境外部变量
import cish, os
env = cish.from_config()[os.environ["PYTHON_VERSION"]]
env.python("setup.py", "build")
virtualenv 也非常简单
import cish
venv = cish.default.virtualenv("optional/location")
venv.pip("install", "package_to_install_inside_virtualenv")
错误报告和其他贡献
该项目托管在此处 cish github页面。
替代方案
你可能想看看 sh,这是一个很酷的库,可以在不直接处理 subprocess 的情况下运行可执行文件。它比 cish 范围更广,但缺乏我们对不同Python安装和特定于OS的文件扩展名和安装位置的抽象。
项目详情
关闭
cish-0.2.1.zip的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9196c0cca5aed869f21bbe324fca244e79f77dfa43868fb9506c6ffe3880a172 |
|
MD5 | 509efa1f5f4cbf434a2b60186b6a7a81 |
|
BLAKE2b-256 | d922c66531b2afba5bc97cb2c68021f9403290a040d86a8f5a2c8e4bfc19313b |