continuousphp / deploy-agent
continuousphp的部署代理
0.2.2
2017-01-16 13:32 UTC
Requires
- php: >=5.5.0
- ext-pdo_sqlite: *
- bushbaby/flysystem: ~1.0
- continuousphp/sdk: ~0.3
- doctrine/doctrine-orm-module: ~0.10
- reprovinci/doctrine-encrypt: ~3.0
- zendframework/zendframework: 2.5.2
Requires (Dev)
- behat/behat: ^3.0
- mikey179/vfsstream: 1.3.*@dev
- phpunit/phpunit: 4.1.*
- squizlabs/php_codesniffer: ^2.3
This package is not auto-updated.
Last update: 2024-09-14 19:04:13 UTC
README
自动部署代理,用于在您的服务器上安装。
它管理基于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
。配置如下:
事件
- AfterInstall : 在应用程序包提取后触发
- BeforeActivate:在符号链接更新之前触发
- AfterActivate:在符号链接更新之后触发
贡献
请注意,本项目发布时附带了贡献者行为准则。通过参与本项目,您同意遵守其条款。
欢迎fork本项目,创建功能分支,并向我们提交pull request!