Skip to content

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

FieldDescription
pace_pipelineDaily orchestrator run. Advances the sprint by one day.
planner_pipelineDay 0 (PLANNER) run. Typically set to the first working day of each sprint.
update_checkChecks GitHub Releases for a newer PACE version. Sends alert if found.
timezoneIANA timezone for all cron expressions in this section.

Common schedule examples

GoalExpressionMeaning
Weekdays at 09:00 local time0 9 * * 1-5Mon–Fri at 09:00
Every day at midnight UTC0 0 * * *Daily
Monday sprint kick-off0 8 * * 1Monday at 08:00
Twice a day (morning/evening)0 9,17 * * 1-509: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 available

Local 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:

Terminal window
# 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>&1

Always 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:

Terminal window
touch .pace/skip

The orchestrator detects this file at startup, logs a skip message, and removes the file. The next scheduled run proceeds normally.