setono / deployer-cron
Use the Setono cron builder to generate cron files in your deployment process
Fund package maintenance!
Setono
Installs: 23 065
Dependents: 0
Suggesters: 0
Security: 0
Stars: 11
Watchers: 2
Forks: 2
Open Issues: 2
Requires
- php: >=8.1
- deployer/deployer: ^7.4
- setono/cron-builder: ^1.0@alpha
- symfony/finder: ^5.4 || ^6.4 || ^7.0
- webmozart/assert: ^1.10
Requires (Dev)
- phpseclib/phpseclib: ^3.0
- phpunit/phpunit: ^10.5
- setono/code-quality-pack: ^2.8.2
- shipmonk/composer-dependency-analyser: ^1.7
README
Simple handling of cronjobs in your deployment process using the Cron builder library.
Installation
composer require setono/deployer-cron
Usage
The easiest usage is to include the cron recipe which hooks into default Deployer lifecycle:
<?php // deploy.php require_once 'recipe/cron.php';
Deployer parameters
The following Deployer parameters are defined:
Cron builder context
The cron builder context is set to the Deployer configuration parameters. This means you can use variables in your cronjob config files. For example:
<?php # etc/cronjobs/jobs.php declare(strict_types=1); use Setono\CronBuilder\Context; use Setono\CronBuilder\CronJob; return static function (Context $context): iterable { yield new CronJob('0 0 * * *', '/usr/bin/php {{ release_path }}/send-report.php', 'Run every day at midnight'); if ($context->get('stage') === 'prod') { yield new CronJob('0 0 * * *', '/usr/bin/php {{ release_path }}/process.php'); } };
Notice the usage of release_path
and stage
in the cronjob config file.
Testing
- Build the Docker image:
docker build -t setono/deployer-cron --no-cache ./tests/docker
- Run the Docker container:
docker run -d -p 2222:22 setono/deployer-cron
- Run the tests:
vendor/bin/phpunit