使用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_owner
和github_token
是必需的。这些是
保存在aws systems manager参数存储中
按类型securestring
IAM
配置codebuild时,您将创建一个iam服务角色。
配置
脚本需要两个配置文件:app
和user
。示例位于示例/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(大多已写入)
- 使用仪表板可视化工具包(首先需要旧工具包中的更多工具)
- 对接的东西(应该对接的)
- 监测(电子的进出)
- 其他很酷的事情我肯定(祈祷)