Skip to main content

建立一个隔离的测试实验室,用于在容器中运行软件。

项目描述

https://img.shields.io/pypi/v/labtest.svg https://img.shields.io/travis/CityOfBoston/labtest.svg 文件状态
免费软件

BSD 许可证

文档

https://labtest.readthedocs.io

概述

简而言之,LabTest 将分支foo部署到其他人可以通过foo.test.example.com访问的服务器上。此部署称为实验。

换句话说,它是一个基于可以存储在公共代码存储库中的配置来提供临时隔离基础设施的框架。

LabTest 分为三个部分:服务器架构(或实验室)、命令行客户端和实验配置。

实验室。这是您控制的服务器环境。LabTest 有一些模板可以帮助您入门,但最终实验室的环境在您的控制之下。所有 LabTest 需要的是 SSH 访问和 Docker。

实验配置。实验配置指示 LabTest 如何发布代码实验。它位于代码存储库中,因此任何处理代码的开发人员都可以发布新的实验。

客户端。客户端是一个命令行工具,它使用 SSH 和实验配置来创建、列出、更新和删除实验室中的实验。

你能用它做什么?

平行发展。一个开发人员可以在三个不同的分支中完成三个工单,并发布三个实验以供三个不同的人审查。票证完成后,可以合并分支并按任意顺序删除实验。

快速评估新想法。有时你只是想尝试一些东西。LabTest 可以很容易地展示这个想法。

向更多受众开放评估。当可以从 Internet 访问这些实验时,人们不必从开发人员的肩膀上查看进度。

配置一次性使用的应用程序。LabTest 的核心是提供隔离的临时基础设施。您可以使用它来轻松设置和拆除应用程序以供一次性使用。

功能原理

当我们开发 LabTest, 这些是我们牢记 LabTest 如何为团队工作的事情。

易于开发人员使用。这有几个部分。应该需要尽可能少的步骤来:

  • 加入新的开发人员

  • 创建、更新和删除实验

  • 转换代码库以使用 LabTest

易于管理。LabTest 只需要 SSH 访问环境。你想做的任何其他事情都取决于你。

灵活的。没有两支球队是一样的。LabTest 通过提供良好的默认值 (为了易于使用) 来拥抱这种多样性, 并能够自定义和扩展 (使其成为您自己的)。

架构原则

孤立的环境。因为这是一个测试环境,所以会出错。您不希望事故损害另一个环境。出于安全原因,这也很方便。由于开发人员将拥有对测试服务器的 SSH 访问权限,因此您希望限制黑客在您受到攻击时可能造成的损害。

易于重建。如果出现问题,可以轻松废弃所有内容并从头开始重建。虽然重建环境可能不方便,但它比调试开发人员游乐场中的更改更容易。

灵活的实验室管理。默认情况下,LabTest 设计为需要很少的管理。LabTest 确实允许管理员使用灵活的方法来定义默认值并扩展功能。自由放任或法西斯:你可以管理你的方式。

开发人员可以通过 SSH 访问。主要原因是命令将通过 SSH 进行通信以设置每个测试实例。另一个是在某些情况下,开发人员可以访问类似生产的环境是有利的。能够在服务器上进行调整是一种快速简便的调试方法。

版权所有

这个包最初是由 Corey Oordt使用Cookiecutterlgiordani/cookiecutter-pypackage项目模板为波士顿市创建的。

# 变更日志

## 0.4.8 (2018-06-01)

### 新的

  • 添加before_start_command配置选项。[科里·奥尔特]

  • 为 html 报告添加了 pytest-html。[科里·奥尔特]

### 更新

  • 围绕新主页重新组织文档。[科里·奥尔特]

  • 添加链接到主页并修复乳胶和其他渲染。[科里·奥尔特]

  • 为主题添加了新的 Boston.gov 品牌字体。[科里·奥尔特]

## 0.4.7 (2018-05-31)

### 新的

  • 添加了在继续之前等待 Docker MySQL 服务启动的功能。[科里·奥尔特]

### 更新

  • 更多文档编辑。[科里·奥尔特]

  • 在文档中添加了主页。[科里·奥尔特]

  • 重新排列文档以获得更好的可访问性。[科里·奥尔特]

## 0.4.6 (2018-05-30)

### 使固定

  • 再次更新该测试。[科里·奥尔特]

## 0.4.5 (2018-05-30)

### 使固定

  • Tixed 一个不确定的测试。[科里·奥尔特]

## 0.4.4 (2018-05-30)

### 新的

  • 在编写环境时将环境变量中的字符串 $VIRTUAL_HOST 更改为实际的虚拟主机名。[科里·奥尔特]

  • 添加了 docker mysql 测试。[科里·奥尔特]

## 0.4.3 (2018-05-29)

### 使固定

  • 更改了 systemd 模板中容器的名称。[科里·奥尔特]

## 0.4.2 (2018-05-29)

### 更新

  • 更改了代码容器的命名约定,以便更轻松地操作容器。[科里·奥尔特]

### 使固定

  • 删除实验时将导入从提供者更改为 service_providers。[科里·奥尔特]

  • 为 python 2.7 更改了 ConfigParser 的导入。[科里·奥尔特]

## 0.4.1 (2018-05-29)

[修复] 这次实际上合并了 0.4 分支。

## 0.4 (2018-05-29)

### 新的

  • 提供了新的测试和模拟 SSH 服务器。[科里·奥尔特]

  • 添加了本地脚本状态提供程序。[科里·奥尔特]

  • 向提供者模块添加了秘密提供者。[科里·奥尔特]

  • 添加了一个版本命令来打印版本。[科里·奥尔特]

  • 添加了 S3 状态提供程序。[科里·奥尔特]

  • 添加了使用 AWS KMS 的基本密钥管理。[科里·奥尔特]

### 更新

  • 更新了测试选项。[科里·奥尔特]

  • 为启动服务提供了更强大的检查。[科里·奥尔特]

  • 在删除和更新实验时提供更好的输出。[科里·奥尔特]

  • 创建了设置环境的标准方法。[科里·奥尔特]

  • 对配置进行小幅清理。[科里·奥尔特]

  • 更好地检查 MySQL 配置是否已更改并解释已更改的内容。[科里·奥尔特]

  • 按字母顺序排列配置,以便更轻松地查找设置。[科里·奥尔特]

  • 在实验的 URL 前添加http://并成功完成一次创建。[科里·奥尔特]

  • 为方便起见,将几个常见的远程文件系统命令重构为单个模块。[科里·奥尔特]

### 使固定

  • 更好地隐藏和一些输出并在 docker-build 文件上写入正确的模式。[科里·奥尔特]

  • 使用前检查 backing_service_configs 是否在 env 中。[科里·奥尔特]

  • 卷和容器的修剪现在使用正确的 docker 命令。[科里·奥尔特]

### 其他

  • 添加了用于默认服务器的启动页面。[科里·奥尔特]

  • 添加了自动部分书签并删除了未使用的手动书签。[科里·奥尔特]

  • 更新检查服务配置的文档字符串。[科里·奥尔特]

## 0.3.5 (2018-05-25)

### 使固定

  • 更新现在正确设置 docker_image。[科里·奥尔特]

## 0.3.4 (2018-05-25)

### 使固定

  • 更新现在设置适当的 service_name 和 network_name。[科里·奥尔特]

## 0.3.3 (2018-05-25)

### 使固定

  • 更新现在调用 setup_backing_services。[科里·奥尔特]

## 0.3.2 (2018-05-23)

### 使固定

  • 包括 docker 提供者的模板。[科里·奥尔特]

## 0.3.1 (2018-05-23)

### 使固定

  • 修复了包装,以便包含提供程序子模块。[科里·奥尔特]

## 0.3.0 (2018-05-21)

### 新的

  • 更新了示例 testserver 云形成文件以包含 rexray。[科里·奥尔特]

  • 为每个实验添加了单独的 Docker 桥接网络。[科里·奥尔特]

  • 为服务、app_build_image 和 app_build_command 添加了默认值。[科里·奥尔特]

  • 创建了一个基本提供程序类,以便使用不同的提供程序轻松创建不同的支持服务。Docker mysql 是第一个。[科里·奥尔特]

### 更新

  • 改变了实验的布局。改进了控制台状态消息。[科里·奥尔特]

    代码现在在名为“代码”的子目录中检出,以将其与 labtest 出于状态原因可能写入的其他文件隔离开来。

  • 改进了 check-config 命令的输出。提供更好的缩进和加粗字段名称。[科里·奥尔特]

  • 将 aws.py 移动到子模块中,以将 ECR 等部分与 RDS 分开。[科里·奥尔特]

  • 更新了自述文件以使其更有意义。[科里·奥尔特]

  • 将 Fabric 版本设置为 <2.0,因为 2.0 刚刚发布,并且需要进行重大更改才能更新。[科里·奥尔特]

  • 将与操作系统服务相关的功能移动到一个模块中以保持一致性。[科里·奥尔特]

### 使固定

  • 更新生成文件。[科里·奥尔特]

  • 忽略 SASS 和节点的东西。[科里·奥尔特]

  • 移除旧的链接,因为我们迁移到用户定义的桥接网络。[科里·奥尔特]

  • 删除多余的 _setup_service。[科里·奥尔特]

  • 包括 instance.list 命令。[科里·奥尔特]

  • 在 docker build 命令模板中将 cd 命令上移,使其位于实际的 git 存储库中。[科里·奥尔特]

### 文档

  • 再次修复可读的主题配置。[科里·奥尔特]

  • 修复 sphinx_readable_theme 未使用的导入。[科里·奥尔特]

  • 添加了新的禅宗主题。[科里·奥尔特]

  • API 文档、makefile 和自述文件的常规清理。[科里·奥尔特]

  • 更新了文档。[科里·奥尔特]

    • 删除了一些多余的 PNG

    • 更新了一些 SVG 以更好地显示工作流程

    • 在适当的地方为图像添加标题

    • 固定警告

    • 标准化配置选项的格式

    • 对标记进行常规清理以提供更好的格式

  • 添加了拿破仑插件,以便我可以更好地格式化我的文档字符串。[科里·奥尔特]

  • 为 sphinx 添加了 fulltoc 插件。[科里·奥尔特]

  • 将自动生成的 API 文档移至 make 命令中的 API 目录。[科里·奥尔特]

## 0.2.6 (2018-05-08)

### 使固定

  • 将引用从 HISTORY.rst 更改为 CHANGELOG.md。[科里·奥尔特]

## 0.2.5 (2018-05-08)

### 更新

  • 将 HISTORY.rst 重命名为 CHANGELOG.md。[科里·奥尔特]

### 使固定

  • 将 io.StringIO 写入的字符串转换为 unicode。[科里·奥尔特]

## 0.2.4 (2018-05-07)

### 使固定

  • 为 Click 修复另一个 python 3 的东西。[科里·奥尔特]

## 0.2.3 (2018-05-07)

### 使固定

  • 修复 python_requires 关键字。[科里·奥尔特]

  • 修复配置文件中的存储库和内容。[科里·奥尔特]

### 其他

  • 在 Makefile 中为补丁、次要和主要版本创建发布命令。[科里·奥尔特]

  • 由于 Click 的问题,删除未来的 unicode 文字导入。[科里·奥尔特]

## 0.2.2 (2018-05-07)

### 更新

  • 更新 MANIFEST.in 以包含要求。[科里·奥尔特]

## 0.2.1 (2018-05-07)

### 新的

  • 添加了创建和删除命令。[科里·奥尔特]

  • 添加了对 branch_name 可用性的检查并在需要时获取它。[科里·奥尔特]

  • 添加了更多必需的配置选项。[科里·奥尔特]

### 更新

  • 更新 travis 配置。[科里·奥尔特]

  • 更新了 Fabric 命令以使用配置的详细设置运行。[科里·奥尔特]

  • 更新了文档。[科里·奥尔特]

  • 更新实例以使用新配置。[科里·奥尔特]

  • 更新了配置。[科里·奥尔特]

  • 更新了测试。[科里·奥尔特]

  • 更新了要求。[科里·奥尔特]

### 使固定

  • 修复了清单。[科里·奥尔特]

  • 修复了查找默认配置文件的方法。[科里·奥尔特]

  • 修复了 travis 配置中的 repo。[科里·奥尔特]

### 其他

  • 删除了对 Python 3 的引用。[Corey Oordt]

  • Python 3 兼容性,我们什么时候可以做到。[科里·奥尔特]

  • 始终写入环境文件的内容,以防对其进行更改。[科里·奥尔特]

  • 将主机配置重命名为主机。[科里·奥尔特]

  • 添加 dotenv 支持和配置。[科里·奥尔特]

  • 初始测试实例创建任务。[科里·奥尔特]

  • 添加动态配置类来管理配置。[科里·奥尔特]

  • 将 oyaml 添加到需求中。[科里·奥尔特]

  • 添加用于设置服务和构建容器的模板。[科里·奥尔特]

  • 为测试服务器添加了 cloudformation 模板。[科里·奥尔特]

  • 忽略 .env 文件。[科里·奥尔特]

  • 将 labtest.py 重命名为 instance.py。[科里·奥尔特]

项目详情


下载文件

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

源分布

labtest-0.4.8.tar.gz (279.4 kB 查看哈希

已上传 source

内置分布

labtest-0.4.8-py2.py3-none-any.whl (31.9 kB 查看哈希

已上传 py2 py3