跳转到主要内容

在4teamwork进行基于git push的部署的工具和脚本。

项目描述

ftw.deploy

ftw.deploy为基于git-push的部署设置提供了一些有见地的工具。此工具有助于安装钩子和部署脚本。

安装

ftw.deploy简单地提供了一个作为控制台脚本的deploy命令。它需要Python 3!

该软件包可以通过与您最喜欢的隔离/虚拟环境方式结合使用pip进行安装。

示例

$ python3 -m venv ftw.deploy
$ cd ftw.deploy
$ source bin/activate
$ ./bin/pip install ftw.deploy

# sym-link the deploy script into your PATH
$ ln -s `pwd`/bin/deploy ~/bin
$ deploy --help

用法

安装后,应该有可用的deploy命令。最新的文档可以通过deploy help获取。

初始化部署脚本

新项目的第一步是初始化部署脚本。可以使用deploy init plone来完成此操作。这将在deployscripts文件夹中创建脚本。

安装部署和配置远程服务器

接下来,通过克隆存储库并执行安装步骤,在服务器上安装部署。然后,使用部署位置调整scripts/setup-git-remotes并执行它。

设置钩子

要安装post-receive钩子并配置存储库,请执行deploy setup [remote]命令。

更新脚本

您可以使用deploy update更新项目中现有的脚本。

安装更新

一切设置好后,您只需将远程的master-分支推送到以安装更新。示例

git push prod master
git push test my-branch:master
git push prod test/master:master

重新运行部署

如果您需要重新运行部署,只需使用 deploy rerun [远程]

使用 ssh 连接到部署

ftw.deploy 提供了通过 ssh 连接并切换到部署目录的快捷方式 deploy ssh [远程]

模板

Plone

plone 模板包含针对与 ftw.buildouts 结合使用的优化推送部署脚本。

自定义更新脚本

可以配置 deploy/after_push 脚本,使其运行 deploy/update_plone 之外的脚本。

例如,您可以在 scripts/nightly-reinstall 中添加,并将其添加到您的夜间构建配置文件中

[buildout]
deployment-update-plone-script = scripts/nightly-reinstall

请注意,这必须在部署的 buildout.cfg 文件中(这可能是符号链接),但由于构建配置文件不会递归解析此选项,因此不能扩展。

高级用法

无需SSH的VPN

当部署位于无 SSH 访问的 VPN 中时,我们无法将内容推送到部署。在这种情况下,可以使用 deploy/pull 脚本来模拟推送。它会从上游(分支必须定义了上游)拉取,并运行部署脚本。

零停机时间

当需要安装升级时,脚本通常会关闭站点以防止在升级运行时数据库出现冲突写入。

当处于零停机环境(例如,当只有发布者写入数据库时,运行升级时数据库将被停止)时,对匿名用户保持站点运行是安全的。

要启用此行为,您必须在应升级为零停机模式的构建配置中设置 deployment-zero-downtime 选项。

警告: deployment-zero-downtime 必须在部署的 buildout.cfg 文件中。当使用 extend 为此选项时,它不起作用,因为选项直接从 buildout.cfg 中读取。

示例

[buildout]
extends =
    ...

deployment-zero-downtime = true

零停机时间部署单个提交

当部署带有升级步骤的提交时,除非配置为零停机,否则站点将被关闭。但有时我们想在非零停机部署中(快速)升级提交,但又不希望出现停机。要标记提交为“零停机证明”,您可以在进行常规部署之前将其推送到部署远程的 zero-downtime 分支。

$ git push testing master:zero-downtime
$ git push testing master

通过环境变量激活零停机时间

当使用 deploy/pull 时,我们可以通过环境变量激活零停机策略

示例

$ ZERO_DOWNTIME=true deploy/pull

开发

为了开发 ftw.deploy,您需要安装 pipenv 并按照以下说明操作

$ git clone git@github.com:4teamwork/ftw.deploy.git
$ cd ftw.deploy
$ pipenv install --dev
$ pipenv shell
$ deploy --help
$ pytest

变更日志

1.3.0 (2019-12-17)

  • Plone 模板:结合 Plone 5 资源包聚合。[jone]

1.2.0 (2019-02-04)

  • 为 deploy ssh 添加 –tunnel 选项。[jone]

1.1.0 (2018-12-21)

  • 修复导致不在 git 仓库中时崩溃的错误。[jone]

  • 提供“deploy ssh”命令。[jone]

1.0.0 (2018-12-21)

  • 初始实现。[jone]

项目详情


下载文件

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

源代码分发

ftw.deploy-1.3.0.tar.gz (25.7 kB 查看散列)

上传时间 源代码

支持者