33set -euo pipefail
44
55DEFAULT_NIGHTLY_UTC_HOUR=' 3'
6- # Canonical fallback nightly cron used when workflow/env does not provide one.
7- DEFAULT_NIGHTLY_SCHEDULE_CRON=' 7 3 * * *'
86DEFAULT_LS_REMOTE_RETRY_ATTEMPTS=' 3'
97DEFAULT_LS_REMOTE_RETRY_SLEEP_SECONDS=' 2'
108
@@ -53,8 +51,8 @@ normalize_cron_expression() {
5351 local minute hour dom month dow
5452 minute=" $( normalize_cron_field " ${parts[0]} " ) "
5553 hour=" $( normalize_cron_field " ${parts[1]} " ) "
56- dom=" ${parts[2]} "
57- month=" ${parts[3]} "
54+ dom=" $( normalize_cron_field " $ {parts[2]}" ) "
55+ month=" $( normalize_cron_field " $ {parts[3]}" ) "
5856 dow=" ${parts[4]} "
5957 printf ' %s %s %s %s %s\n' " ${minute} " " ${hour} " " ${dom} " " ${month} " " ${dow} "
6058}
@@ -128,7 +126,7 @@ git_ls_remote_with_retry() {
128126source_git_url=" ${ASTRBOT_SOURCE_GIT_URL} "
129127source_git_ref=" ${ASTRBOT_SOURCE_GIT_REF} "
130128nightly_source_git_ref=" ${ASTRBOT_NIGHTLY_SOURCE_GIT_REF:- master} "
131- nightly_schedule_cron=" ${ASTRBOT_NIGHTLY_SCHEDULE_CRON:- ${DEFAULT_NIGHTLY_SCHEDULE_CRON} } "
129+ nightly_schedule_cron=" ${ASTRBOT_NIGHTLY_SCHEDULE_CRON:- } "
132130nightly_utc_hour=" ${ASTRBOT_NIGHTLY_UTC_HOUR:- ${DEFAULT_NIGHTLY_UTC_HOUR} } "
133131event_schedule_raw=" ${GITHUB_EVENT_SCHEDULE:- } "
134132# When WORKFLOW_BUILD_MODE is unset, we intentionally default to different modes
@@ -215,7 +213,7 @@ case "${GITHUB_EVENT_NAME}" in
215213 schedule)
216214 publish_release=" true"
217215 if [ " ${requested_build_mode} " = " auto" ]; then
218- if [ -n " ${event_schedule_raw} " ]; then
216+ if [ -n " ${event_schedule_raw} " ] && [ -n " ${nightly_schedule_cron} " ] ; then
219217 if cron_expressions_match " ${event_schedule_raw} " " ${nightly_schedule_cron} " ; then
220218 build_mode=" nightly"
221219 echo " ::notice::schedule build_mode=auto resolved to nightly via cron '${event_schedule_raw} ' (target nightly cron '${nightly_schedule_cron} ')."
@@ -225,7 +223,10 @@ case "${GITHUB_EVENT_NAME}" in
225223 fi
226224 else
227225 # Compatibility fallback for environments where github.event.schedule
228- # is unavailable: keep previous hour-based routing.
226+ # or ASTRBOT_NIGHTLY_SCHEDULE_CRON is unset: keep previous hour-based routing.
227+ if [ -n " ${event_schedule_raw} " ] && [ -z " ${nightly_schedule_cron} " ]; then
228+ echo " ::warning::ASTRBOT_NIGHTLY_SCHEDULE_CRON is empty; falling back to hour-based schedule routing."
229+ fi
229230 current_utc_hour=" $( date -u +%H) "
230231 if [ " ${current_utc_hour} " = " ${nightly_utc_hour_padded} " ]; then
231232 build_mode=" nightly"
0 commit comments