使用aws和github的python开发工具

pydevhammer的Python项目详细描述


py dev锤子

:蛇::书呆子脸::锤子:
当你只有一把锤子的时候,一切看起来都像一个开发人员。

关于

py dev hammer是一组工具,可帮助开发python应用程序。

这个pre-alpha版本包含一个工具。它是一个执行 对项目进行动态和静态代码分析,并将结果作为状态发布到github。

有关进一步的发布计划,请参见路径图。第一项是使用aws cloudformation 把这份文件的大部分内容都删掉。随着项目的进展,本自述文件将引用其他 阅读而不是详述所有内容。

需要

python3.6

先决条件

注意:本指南试图尽量减少对第三方工具的特定引用 很可能改变。用你的直觉请进来 如果有明显的问题和/或您想 给我买杯啤酒。建议使用后者。

Github

为了实现提交的持续集成,github通过 网络挂钩。为了便于使用,您可以在 github用户界面而不是 使用api。应使用以下选项:

  • 有效负载url:https://codebuild.{your aws region}.amazonaws.com/webhooks
  • 内容类型:应用程序/json
  • 秘密:创建一个安全的秘密
  • SSL验证:启用
  • 您希望触发此webhook的哪些事件?:只是推送事件。
  • 活动:勾选

接下来您将把codebuild链接到github

AWS/H3>

代码生成

你必须 配置生成 与github集成。对于源提供程序选项,选择github,然后选择连接到github。 遵循验证路径,然后选择源存储库。

应使用以下选项:

  • 报告生成状态:勾选
  • webhook:勾选
  • 分支筛选器:留空(全部生成!)
  • 建立徽章:勾选
  • 生成规范:使用源代码根目录中的buildspec.yml
  • 构建规范名称:buildspec.yml
  • 服务角色:在您的帐户中创建服务角色

发电机

要维护多个生成的状态,请adynamodb table 需要创建一个分区和排序键。应用程序文件示例使用以下内容 值:

dynamo:
    table_name: 'build-status'
    partition_key_name: 'branch_name'
    sort_key_name: 'build_start_time'

主分区键是a字符串,主排序键是a数字

系统管理器(SSM)

投递到github agithub_ownergithub_token是必需的。这些是 保存在aws systems manager参数存储中 按类型securestring

IAM

配置codebuild时,您将创建一个iam服务角色。

配置

脚本需要两个配置文件:appuser。示例位于示例/app_config.example.yml示例/user_config.example.yml

APP

示例应用程序配置可以按原样复制和使用,但是您可能需要删除一些测试 在"测试到运行"下键入,并注意需要将您的"buildspec.yml"调整为 匹配.

用户

应修改示例用户配置以适合您的github和aws项目详细信息。

证书

将证书安全地发布到github(当您通过internet发送github令牌时) 必须使用。将文件路径作为环境变量certificate_file传递。或者你 可以使用第三方python模块来生成它。 脚本将首先查找环境变量,然后返回到使用certifi.where()

环境变量

必须通过 文件。

此变量由aws codebuild自动设置:

  • codebuild_src_dir

此项目的脚本使用这些变量:
(注意:后勾号很重要,因为这里是bash land)

  • pythonpath=`pwd`
  • 配置目录=/path/to/your/config/dir
  • 证书文件/path/to/your/cert.file(注意:可选
  • codebuild_git_branch=`git branch-a——包含head sed-n 2p awk'{printf$1}`
    (注意:不推荐警告;将在将来的版本中从python中获得)

此变量由codebuild使用:

  • tests_dir=$codebuild_src_dir/path/to/your/tests/results/dir
    (注意:这是您的项目的测试目录,而不是此项目)

安装

pip安装pydevhammer

用法

创建一个python文件,通过buildspec.yml从命令行运行脚本。示例文件 可在示例/run github\u status\u posting.py中找到。

要将codebuild与上述aws配置一起使用,您需要创建一个buildspec.yml 文件。示例文件位于examples/buildspec.yml中。构建 在该文件的部分中,您可以调用测试运行

路线图

  • 使用cloudformation设置所有aws资源(谁想阅读这个自述文件?)
  • structuredText到Markdown Converter(大多已写入)
  • 使用仪表板可视化工具包(首先需要旧工具包中的更多工具)
  • 对接的东西(应该对接的)
  • 监测(电子的进出)
  • 其他很酷的事情我肯定(祈祷)

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

推荐PyPI第三方库


热门话题
解释java选择方法   连接到127.0.0.1的java间歇性故障,连接到IP(eth0)时没有故障   java如何优雅地杀死hadoop作业/intercept`hadoop作业杀死`   java如何通过引导类加载器以编程方式加载另一个类?   url Java:在查询参数之前使用片段构建URI   在BroadLeaf表blc_order_属性中保存OrderAttributes值时发生java错误   安卓将功能从xml转换为java   java如何将数据写入文件?   java JPA SQL结果映射   Java中整数对象比较运算符的引用安全性   Spring测试失败:java。lang.NoClassDefFoundError:org/springframework/cglib/transform/impl/memorysafuendecaredthrowableStrategy   rich:extendedDataTable中的java行选择和数据处理   java为什么我需要在volatile上对多个线程使用synchronized?   java尽管构建成功,但为什么会出现此错误?   数组$ArrayList不能转换为java。util。java中的ArrayList   java如何根据泛型类型调用方法?   java将JLabel添加到JPanel,将JPanel添加到JFrame   如果MapStruct中的源为null,则java将父目标设置为null   JavaJBossDrools从DRL插入事实   java不同的JRE安装(windows)