基于所提供的规则集实现对TerraForm资源的linting和测试的库。
terraformtestinglib的Python项目详细描述
一个基于规则实现对地形资源的linting和测试的库
开发工作流
工作流支持以下步骤
- lint
- test
- build
- document
- upload
- graph
这些操作由_ci/scripts目录下的相应脚本提供开箱即用的支持,这些脚本具有基于最佳实践的正常默认值。 在mac或linux上的bash中为windows powershell或setup_aliases.sh寻找setup_aliases.ps1将为所有这些命令的外壳提供方便的别名,这些命令的外壳都以下划线开头。
引导脚本在托管虚拟环境的项目目录中创建一个.venv目录。它使用pipenv来实现这一点。 所有其他脚本在执行任何操作之前都会调用它。因此,可以简单地从调用lint开始,这样就可以在实际对项目进行lint操作之前设置所有内容
一旦代码准备好交付,就应该调用标记脚本,接受语义版本控制方案后面的三个参数patch、minor、major中的一个。 因此,对于最初的交付,我们将调用
$ _tag –minor
这将使项目的版本在git中将其标记为0.1.0,并执行推送操作,同时请求更改并使用提供的版本和更改自动更新history.rst。
因此git初始化后的完整工作流是:
- repeat as necessary (of course it could be test - code - lint :) ) * code * lint * test
- commit and push
- develop more through the code-lint-test cycle
- tag (with the appropriate argument)
- build
- upload (if you want to host your package in pypi)
- document (of course this could be run at any point)
重要信息
此模板基于pipenv。为了与Advest.TXT兼容,所以实际创建的包可以被现有Python生态系统的任何部分使用,需要一些黑客。 因此,当用这个构建包时,不要简单调用
$ python setup.py sdist bdist_egg
,因为这将产生一个文件丢失的不可用工件。 相反,使用提供的构建和上载脚本来创建工件中所有必需的文件。
项目特征
- 基于提供的规则的Lints terraform文件
- 根据提供的规则强制在文件上定位资源
历史
0.1.0(2018年5月24日)
- 首次发布
1.0.0(2018年10月16日)
- 在linting和testing功能上实现变量、计数属性和格式方法插值
- 通过对资源的条件筛选实现了测试功能
- 将管道部分移植到Python3.7
- 放弃了对python2.7的官方支持
1.0.3(2018年10月17日)
- 在history.rst文件中实现了标记时更改日志的交互式设置
1.0.4(2018年10月25日)
- 更新的模板和依赖项
1.1.0(2019年1月7日)
- 添加了对同名属性的支持以及对值筛选属性
1.1.1(2019年1月14日)
- 正确处理资源数据中的列表。
1.1.2(2019年1月18日)
- 如果是数字,则转换为字符串进行替换
1.2.0(19-01-2019)
- 增加了对“length”方法和多变量字符串的支持
1.2.1(20-01-2019)
- 修正了count是一个字符串的错误,该字符串破坏了范围计算
1.2.2(2019年1月22日)
- 添加了对多个相同键的支持,这些键最终在内部作为列表处理
1.2.3(2019年1月22日)
- 添加了基于资源上的“跳过测试”标记跳过测试的功能
1.3.0(2019年2月6日)
- 实现了所有terraform支持的实体,如,data,terraform和provider
1.4.0(2019年2月7日)- 实现了对灾难恢复.tf文件的跳过定位检查。重构容器对象以公开筛选
- 实现了对灾难恢复.tf文件的跳过定位检查。重构容器对象以公开筛选
1.4.1(2019年2月7日)
- 固定堆栈对象的实例化