Schedule PACE with Cron
PACE can run on a schedule using standard cron expressions. This lets the daily pipeline trigger automatically without a manual python pace/orchestrator.py call.
Configure cron schedules
Add a cron: section to pace/pace.config.yaml:
cron: pace_pipeline: "0 6 * * 1-5" # daily pipeline: 06:00 Mon–Fri planner_pipeline: "0 5 * * 1" # Day 0 planner: 05:00 every Monday update_check: "0 4 * * *" # update check: 04:00 every day timezone: "America/New_York"All times are in the cron.timezone timezone (IANA format, e.g. UTC, Europe/London, Asia/Tokyo).
Cron field reference
| Field | Description |
|---|---|
pace_pipeline | Daily orchestrator run. Advances the sprint by one day. |
planner_pipeline | Day 0 (PLANNER) run. Typically set to the first working day of each sprint. |
update_check | Checks GitHub Releases for a newer PACE version. Sends alert if found. |
timezone | IANA timezone for all cron expressions in this section. |
Common schedule examples
| Goal | Expression | Meaning |
|---|---|---|
| Weekdays at 09:00 local time | 0 9 * * 1-5 | Mon–Fri at 09:00 |
| Every day at midnight UTC | 0 0 * * * | Daily |
| Monday sprint kick-off | 0 8 * * 1 | Monday at 08:00 |
| Twice a day (morning/evening) | 0 9,17 * * 1-5 | 09:00 and 17:00 Mon–Fri |
| Disable a schedule | (omit the field) | Field omitted = not scheduled |
GitHub Actions integration
When platform.ci: github, the cron settings are used to configure the schedule: trigger in .github/workflows/pace.yml:
on: schedule: - cron: "0 6 * * 1-5" # from cron.pace_pipeline, converted to UTC workflow_dispatch: # manual trigger always availableLocal cron (non-GitHub platforms)
For platform.ci: local or self-hosted runners, install the cron job directly in the system crontab or a process supervisor like systemd:
# Add to crontab (crontab -e)# Run PACE at 07:00 Mon–Fri in Europe/London time (UTC+1 in winter)0 6 * * 1-5 cd /path/to/repo && /path/to/repo/pace/.venv/bin/python pace/orchestrator.py >> /var/log/pace.log 2>&1Always use the full path to the virtualenv Python binary to avoid PATH issues.
Skipping a scheduled run
To skip a single run without disabling the schedule, create a .pace/skip file before the scheduled time:
touch .pace/skipThe orchestrator detects this file at startup, logs a skip message, and removes the file. The next scheduled run proceeds normally.