See "Why?" section
What if combine Tomtit with cron jobs? This is how Cromtit was born ...
So, meet Cromtit - asynchronous cron job runner for Tomtit projects:
In nutshell if one has many Tomtit projects, they might run them as cron or manual jobs using Sparky asynchronous jobs engine.
zef install --/test Cromtit
Define Cromtit configuration to describe all possible jobs:
projects: rakudo: path: ~/projects/rakudo r3: path: ~/projects/r3tool crontab: "30 * * * *" action: html-report options: --no_index_update before: - name: rakudo action: pull install
Here we define one main project - "R3" that runs blackbox tests for Rakudo built from the new commits. Before this job is triggered, a dependency job - "Rakudo" gets executed - ensure that a new commit is checked out and a fresh Rakudo is built, installed and ready to test.
This step will convert Cromtit configuration into Sparky scenarios and Sparky will do it's job:
Ensure that project "R3" will be executed every halve hour
Reports and logs are accessible via Sparky web interface: http://127.0.0.1:4000
Of course this is very informal intro into Cromtit, one can get more details on documentation pages - https://github.com/melezhik/Cromtit
To spur more interest - some things to highlight. Cromtit allows:
Nested job dependencies, where job
Ais dependent on job
Bis dependent on job
Cand so on.
Passing environment variables to jobs calls, so the same job could be called many times with different input parameters
Manual job runs instead of cron style runs
You have a lot of local projects that you want to run as cron jobs, but without standard linux cron complexity and with some features like job dependencies and html reports.
That is it. Thanks for reading, comments and questions are always appreciated.