自动上游依赖性测试
strazar的Python项目详细描述
Strazar(保加利亚哨兵)帮助您主动监视新的 上游包的版本。一旦找到一个包,它就被添加到您的测试中 矩阵,以确保您的软件与最新的上游依赖!
strazar通过更新.travis.yml环境来工作,并使用github 自动将更改拉入和推送到存储库的API。实际的 环境设置和测试由ci服务器执行,而strazar 充当新构建的触发器!
更改日志
0.2.8(2017-06-16)
- 改进了登录错误;
0.2.7(2017-06-11)
- 在config;中找到新添加的包时记录
- 更好的异常记录。
0.2.5(2017-01-11)
- 如果strazar正在监视一个 当前不在.travis.yml中。当你的软件 切换依赖项,例如从boto切换到boto3,但是 喜欢保留以前依赖项的监视配置。
0.2.4(2017-01-05)
在提交日志中使用新的包名称和版本;
修正一个错误,当 存在相互冲突的包。以下语法 现在支持:
env: - '_BOTO=2.45.0 _DJANGO=1.9 _DJANGO_STORAGES=1.5.1' - '_BOTO3=1.4.3 _DJANGO=1.9 _DJANGO_STORAGES=1.5.1'
当找到Django 1.10时,矩阵将更新如下:
env: - '_BOTO=2.45.0 _DJANGO=1.9 _DJANGO_STORAGES=1.5.1' - '_BOTO=2.45.0 _DJANGO=1.10 _DJANGO_STORAGES=1.5.1' - '_BOTO3=1.4.3 _DJANGO=1.9 _DJANGO_STORAGES=1.5.1' - '_BOTO3=1.4.3 _DJANGO=1.10 _DJANGO_STORAGES=1.5.1'
0.2.3(2016-07-28)
- 添加日志记录以指示进度和状态
0.2.2(2016-05-16)
- 处理数据流中的非ascii字符
0.2.1(2016-05-15)
- 初始版本
安装
要安装:
pip install strazar
支持的CI环境
目前只支持Travis-CI!
支持的源代码存储库
目前只有GitHub支持,因为我们使用它们 API,不是直接的Git!
- GITHUB_TOKEN环境变量允许经过身份验证的API访问。这个 令牌需要public_repo或repo权限。
准备.travis.yml
strazar使用变量名开头的变量格式 后面是大写的软件包名称。所有连字符都是 也被转换成低分。我们建议您的.travis.yml文件 遵循同样的惯例。这就是strazar自己的.travis.yml的样子 例如:
language: python python: - 2.7 - 3.5 install: - pip install coverage flake8 mock PyYAML==$_PYYAML PyGithub==$_PYGITHUB script: - ./test.sh env: - _PYGITHUB=1.26.0 _PYYAML=3.11
监控PYPI
pypi不提供web钩子,因此我们检查rss提要的包 基于配置设置的兴趣。开始监视pypi执行 以下代码来自cron作业(在Mr. Senko 我们每小时做一次):
import os import strazar os.environ['GITHUB_TOKEN'] = 'xxxxxxxxx' config = { "PyYAML" : [ { 'cb' : strazar.update_github, 'args': { 'GITHUB_REPO' : 'MrSenko/strazar', 'GITHUB_BRANCH' : 'master', 'GITHUB_FILE' : '.travis.yml' } }, ], } strazar.monitor_pypi_rss(config)
configdict使用包名称作为一级键。如果你感兴趣 在一个特定的包中添加它。从rss中检测到的所有其他包 将忽略源。如果项目依赖于多个包,则必须 在config中将它们列为一级键并复制键值。
键值是要执行一次的回调方法和参数的列表。 新软件包已在线发布。如果两个或多个存储库依赖于 然后同一个包将它们作为值添加到此列表中。
strazar.update_github回调知道如何提交到源repo 将自动触发新的CI生成。
贡献
源代码和问题跟踪程序位于https://github.com/MrSenko/strazar
商业支持
Mr. Senko为开源提供商业支持 图书馆,如果你需要的话!