自动上游依赖性测试

strazar的Python项目详细描述


Build status

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

支持的上游包存储库

目前只支持PyPI。我们有计划 添加RubyGemsNPM 很快!其他人稍后会来。

支持的CI环境

目前只支持Travis-CI

支持的源代码存储库

目前只有GitHub支持,因为我们使用它们 API,不是直接的Git!

  • GITHUB_TOKEN环境变量允许经过身份验证的API访问。这个 令牌需要public_reporepo权限。

准备.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为开源提供商业支持 图书馆,如果你需要的话!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Android首选项相同getPreference()值的不同数据   字符串如何在Java中连接两个列表中的单词   安卓 Java Socket编程:检测客户端和服务器是否连接   使用JTextField的java无法将值转换为int   在java中,如何在不通过超级构造函数设置的情况下将消息设置为自定义异常类   用于标识属性值的java正则表达式模式   Android中的java不可见谷歌地图   java正确取消启动ExecutorService的JavaFX任务   在非活动java类中使用安卓的融合位置提供程序,并在主活动类中获取经度和纬度   spring为什么我的大摇大摆不能用springboot在java中工作?   java JSF(2.2)ViewScope在Weblogic 12.2.1.2和JDK 8上使用Spring 4.3.7(在Mac OS和Docker Oracle Linux环境上)   java如何用一个按钮提高计时器速度   java如何检查字符是否是元音?   注册表引用了不存在的Java运行时环境安装或运行时已损坏错误   来自ResultSet java的mysql getDateTime   maven LanguageTool Java API是否具有“无用”依赖关系?   twitter api身份验证的java Trycatch问题   java在Apache Struts 1.1中是否可以显式白名单?   安卓致命异常:主java。lang.RuntimeException:被问及未知片段