setono / deployer-cron
使用Setono cron构建器生成部署过程中的cron文件
v0.2.4
2023-04-11 09:16 UTC
Requires
- php: >=7.4
- deployer/deployer: ^6.8
- setono/cron-builder: ^0.3.1
- symfony/console: ^4.4 || ^5.4 || ^6.0
- webmozart/assert: ^1.10
Requires (Dev)
- setono/code-quality-pack: ^2.1.3
README
使用Cron builder库简单处理部署过程中的cron作业。
安装
$ composer require setono/deployer-cron
用法
最简单的用法是包含钩入默认Deployer事件的cron配方
<?php // deploy.php require_once 'recipe/cron.php';
Deployer参数
以下Deployer参数已被定义
注意,默认值 cron_variable_resolvers
是一个空数组,但这个库将始终添加一个 ReplacingVariableResolver
,它包含以下部分中描述的变量:下面。
构建上下文
默认构建上下文在Deployer参数 cron_context
中定义。它添加阶段作为上下文,这意味着您可以在cronjob配置中使用 condition
键。
# /etc/cronjobs/jobs.yaml - schedule: "0 0 * * *" command: "%php_bin% %release_path%/bin/console my:dev:command" condition: "context.stage === 'dev'"
上述cronjob只有在部署阶段等于 dev
时才会添加到最终的cron文件中。
可用的额外变量
此库还添加了更多可以在cronjob配置中使用的变量
%application%
:将输出应用程序名称%stage%
:将输出阶段,例如dev
、staging
或prod
%php_bin%
:将输出PHP二进制的路径%release_path%
:将输出服务器上的发布路径
使用这些变量,您可以定义一个cronjob,如
# /etc/cronjobs/jobs.yaml - schedule: "0 0 * * *" command: "%php_bin% %release_path%/bin/console my:command"
这将翻译成以下crontab中的行
0 0 * * * /usr/bin/php /var/www/your_application/releases/23/bin/console my:command