continuousphp/deploy-agent

continuousphp的部署代理

0.2.2 2017-01-16 13:32 UTC

README

主分支
Master branch status
开发分支
Develop branch status

自动部署代理,用于在您的服务器上安装。

它管理基于webhooks的自动化部署工作流程。

要求

  • PHP 5.5+
  • PHP mcrypt 扩展
  • sqlite 或其他doctrine兼容的SGBD(sqlite是当前唯一官方支持的)

⚠️ PHP sqlite扩展默认未安装。

通过Docker(容器服务)安装

您可以使用我们的Docker镜像作为容器服务。容器与您的服务器其他部分隔离,您无需担心服务器依赖或安全性。

感谢向Docker Hub文档报告。

通过Composer安装

  • 下载Composer: curl -sS https://getcomposer.org.cn/composer.phar -o composer.phar
  • 安装部署代理:php composer.phar create-project continuousphp/deploy-agent
  • 开始使用代理:cd deploy-agent && ./agent

HTTP服务器配置

要设置Apache,设置一个指向项目public/目录的虚拟主机,然后您就可以开始了!它应该是这样的

<VirtualHost *>
    DocumentRoot /path/to/deploy-agent/public
    <Directory /path/to/deploy-agent/public>
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

同时启用Apache mod rewrite以支持webhook路由

a2enmod rewrite

用法

列出您的应用程序

./agent list applications

创建一个应用程序

./agent add application [--provider=] [--token=] [--repository-provider=] [--repository=] [--pipeline=] [--name=] [--path=]
  • --provider 要使用的应用程序提供商(目前,仅支持continuousphp应用程序提供商)
  • --token 消费提供商API的有效令牌(例如:continuousphp API令牌)
  • --repository-provider 要使用的存储库提供商(例如:git-hub,bitbucket...)
    (仅对continuousphp适用)
  • --repository 要使用的存储库密钥(例如:continuousphp/deploy-agent)
  • --pipeline 要使用的管道(例如:refs/heads/master)
    (仅对continuousphp适用)
  • --name 应用程序名称
  • --path 应用程序的目标路径

令牌

token取决于提供商。目前,仅支持continuousphp API。您可以在continuousphp.com/profile的个人资料页面获取您的个人token

部署应用程序

./agent deploy application [--name=] [--build=]
  • --name 应用程序名称
  • --build 要部署的构建ID

应用程序路径

当发生部署时,部署代理会在其专用工作空间中为每个构建创建一个新的文件夹。要启用新的构建,它将创建/更新当前构建的符号链接

[application-path]
        |
        +---[/current] (symlink to current build)
        |
        +---[/build-1]
        |
        +---[/build-2]

钩子

在部署工作流程中,部署代理可以通过在continuous.yml文件中定义的钩子执行项目特定命令。

# continuous.yml
deployment:
  hooks:
    AfterInstall:
      - command: echo 'the application is successfully installed'
    BeforeActivate:
      - command: echo 'the application is going to start'
    AfterActivate:
      - command: echo 'the application has started'

Webhook设置

continuousphp中实现钩子的URL是<baseuri>/webhook/continuousphp。配置如下:continuousphp setup

事件

  • AfterInstall : 在应用程序包提取后触发
  • BeforeActivate:在符号链接更新之前触发
  • AfterActivate:在符号链接更新之后触发

贡献

请注意,本项目发布时附带了贡献者行为准则。通过参与本项目,您同意遵守其条款。

欢迎fork本项目,创建功能分支,并向我们提交pull request!