Bug 1355105 - Cron.yml requires a 'when' for all projects even if not specified in 'run-on-projects'. r=dustin
MozReview-Commit-ID: CIKcRtGfvIM
--- a/taskcluster/taskgraph/cron/__init__.py
+++ b/taskcluster/taskgraph/cron/__init__.py
@@ -38,27 +38,28 @@ logger = logging.getLogger(__name__)
def load_jobs(params):
with open(os.path.join(GECKO, '.cron.yml'), 'rb') as f:
cron_yml = yaml.load(f)
schema.validate(cron_yml)
# resolve keyed_by fields in each job
jobs = cron_yml['jobs']
- for job in jobs:
- resolve_keyed_by(job, 'when', 'Cron job ' + job['name'],
- project=params['project'])
return {j['name']: j for j in jobs}
def should_run(job, params):
run_on_projects = job.get('run-on-projects', ['all'])
if not match_run_on_projects(params['project'], run_on_projects):
return False
+ # Resolve when key here, so we don't require it before we know that we
+ # actually want to run on this branch.
+ resolve_keyed_by(job, 'when', 'Cron job ' + job['name'],
+ project=params['project'])
if not any(match_utc(params, hour=sched.get('hour'), minute=sched.get('minute'))
for sched in job.get('when', [])):
return False
return True
def run_job(job_name, job, params):
params['job_name'] = job_name