跳转到主要内容

自动上游依赖测试

项目描述

Build status

Strazar(来自保加利亚语的哨兵)帮助您主动监视上游包的新版本。一旦找到包,它就会被添加到您的测试矩阵中,以确保您的软件与最新的上游依赖项兼容!

Strazar通过更新.travis.yml环境并使用GitHub API自动将更改拉取和推送到您的存储库来工作。实际的环境设置和测试由CI服务器执行,而Strazar充当新构建的触发器!

变更日志

  • 0.2.8 (2017-06-16)

    • 改进错误日志;

  • 0.2.7 (2017-06-11)

    • 在配置中找到新添加的包时记录日志;

    • 更好的异常记录。

  • 0.2.5 (2017-01-11)

    • 如果Strazar正在监视当前不在.travis.yml中的包,则不会崩溃。这可能发生在您的软件切换依赖项时,例如从boto切换到boto3,但您仍然希望保留先前依赖项的监视配置。

  • 0.2.4 (2017-01-05)

    • 在提交日志中使用新的包名和版本;

    • 修复了一个问题,即当存在相互冲突的包时,Strazar无法正确更新测试矩阵。现在支持以下语法

      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

支持的源代码仓库

目前仅支持作为我们使用其API而不是git直接使用的GitHub

  • GITHUB_TOKEN环境变量允许认证的API访问。此令牌需要public_reporepo权限。

准备.travis.yml

Strazar使用变量格式_PACKAGE_NAME,其中变量名以下划线开头,后面跟大写包名。所有连字符都转换为下划线。我们建议您的.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-hooks,所以我们根据配置设置检查感兴趣包的RSS源。要从cron作业(在Mr. Senko我们每小时执行一次)开始监控PyPI,请执行以下代码

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)

config字典使用包名作为第一级键。如果您对某个特定包感兴趣,请在此处添加它。所有其他从RSS源检测到的包都将被忽略。如果您的项目依赖于多个包,您必须将它们作为第一级键在config中列出,并重复键值。

键值是一个回调方法和执行一次新包发布在网上的参数列表。

strazar.update_github回调知道如何提交到您的源仓库,这将自动触发新的CI构建。

贡献

源代码和问题跟踪器在https://github.com/MrSenko/strazar

商业支持

Mr. Senko为开源库提供商业支持,如果您需要的话!

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

strazar-0.2.8.tar.gz (7.0 kB 查看哈希值

上传时间

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面