setono / deployer-cron

使用Setono cron构建器生成部署过程中的cron文件

v0.2.4 2023-04-11 09:16 UTC

README

Latest Version Latest Unstable Version Software License Build Status

使用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%:将输出阶段,例如 devstagingprod
  • %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