zicht/z-plugin-deploy

为 Z 部署的插件

2.0.0-beta.1 2016-10-24 09:47 UTC

This package is auto-updated.

Last update: 2024-09-16 01:05:00 UTC


README

此插件提供构建和部署当前项目的任务

  • deploy 任务用于构建并将项目部署到特定环境
  • simulate 任务用于构建并模拟项目针对特定环境的部署
  • redeploy 任务用于重新构建并重新部署特定环境上当前项目的版本
  • patch 任务用于修复特定环境
  • unpatch 任务用于撤销特定环境上的修复
  • qdeploy 任务用于构建项目并修复特定环境
  • qsimulate 任务用于构建项目并模拟修复特定环境

使用方法

设置 Z

有关如何使用插件安装 Z 的更多信息,请参阅 zicht/z 的文档。

通用方法

注意 此设置需要一些其他插件。您不需要使用这些插件,但这是典型设置的示例(遵循此部署方案)。

此实现的一般方法是

  • 在单独的文件夹中创建构建,通过将当前工作目录克隆到单独的 build 目录中来实现(git 插件处理此操作)
  • 所有其他插件都有机会通过将其自身附加到 buildpost 触发器来挂钩到构建(这是常见的 Z 功能,您可以通过这种方式挂钩到任何任务)
  • 执行 rsync 到远程 SSH 环境(《rsync 插件处理此操作)
  • deploypost 触发器中执行更多维护工作。

“deploy”插件还提供了一个“simulate”任务,该任务创建一个构建,并使用“--dry-run”标志运行“rsync”,以便您可以看到将要同步的内容。

将排除文件添加到您的项目中

默认情况下,“rsync”插件期望您将 rsync 文件添加到项目中

echo ".git/" >> ./rsync.exclude
git add rsync.exclude
git commit -m"add rsync.exclude" ./rsync.exclude

然后,您将需要在项目中创建一个 z 文件

plugins: ['env', 'build', 'deploy', 'git', 'rsync']


envs:
    prod:
        ssh: myuser@prod-machine
        root: ~/my-project-path
        web: public    # the relative path to the public web folder within the project path

tasks:
    build:
        post:
            - echo "I am just adding a random file here" >> $(path(build.dir, "foo.html"))

    deploy:
        post:
            - echo "Thank you, come again"

如果您解释了部署,您将看到 bash 中每一步的解释。有关 --explain 在 Z 文档中执行的操作的更多信息。

$ z --explain deploy prod
echo 'echo "Checking out version foo to ./build";' | /bin/bash -e
echo 'git clone . ./build' | /bin/bash -e
echo 'cd ./build && git checkout foo' | /bin/bash -e
echo 'cd ./build && git log HEAD -1 > .z.rev' | /bin/bash -e
echo 'echo "I am just adding a random file here" >> ./build/foo.html' | /bin/bash -e
echo 'rsync \
     \
    -rpcl --delete  \
        --exclude-from=./build/rsync.exclude \
        -v \
    ./build/ myuser@production-machine:~/my-project-path/ \
;' | /bin/bash -e
echo 'echo "Thank you, come again"' | /bin/bash -e

如您所见,此说明中的每一行都反映了构建过程中的一个步骤。

现在,您还可以模拟部署,这将执行除“deploy”的“post”触发器之外的所有操作

z simulate prod

如果成功

z deploy prod

您应该检查的常见问题

  • 您能否登录到 SSH 远程?使用 z env:ssh prod 检查此问题。建议您使用 z env:ssh-copy-id prod 将您的密钥发布到远程,以便您无密码访问远程。
  • 远程目录是否存在?env 尝试在远程目录中打开 ssh 会话。使用此方法检查您的设置:z env:ssh prod pwd(或省略 pwd 以交互方式运行)。
  • 构建中是否有 rsync 文件?您可以自己创建构建并检查它

请注意,您始终可以使用 --explain 来检查插件和/或 Z 尝试执行的操作。要获取更多信息,您可以将 --explain--debug 结合起来,您可以看到某些任务行来自何处。

考虑事项

  • 您可以添加自己的插件组合来准备 JavaScript/CSS 文件,向构建添加凭据等。但是,许多常见的使用插件已经可用。这些包括像
    • npm、bower、typescript、babel 等
    • sass、post-css
    • chmod
  • 一旦您发现您正在跨项目复制粘贴您的 z.yml 文件,您应该考虑创建插件。

维护者