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