Skip to content

Commit 37582ca

Browse files
committed
ci(schedule): use workflow cron default and normalize dom/month
1 parent c802c74 commit 37582ca

2 files changed

Lines changed: 9 additions & 8 deletions

File tree

.github/workflows/build-desktop-tauri.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ env:
3939
ASTRBOT_SOURCE_GIT_URL: ${{ vars.ASTRBOT_SOURCE_GIT_URL || 'https://github.com/AstrBotDevs/AstrBot.git' }}
4040
ASTRBOT_SOURCE_GIT_REF: ${{ vars.ASTRBOT_SOURCE_GIT_REF || 'master' }}
4141
ASTRBOT_NIGHTLY_SOURCE_GIT_REF: ${{ vars.ASTRBOT_NIGHTLY_SOURCE_GIT_REF || 'master' }}
42-
ASTRBOT_NIGHTLY_SCHEDULE_CRON: ${{ vars.ASTRBOT_NIGHTLY_SCHEDULE_CRON || '' }}
42+
ASTRBOT_NIGHTLY_SCHEDULE_CRON: ${{ vars.ASTRBOT_NIGHTLY_SCHEDULE_CRON || '7 3 * * *' }}
4343
ASTRBOT_NIGHTLY_UTC_HOUR: ${{ vars.ASTRBOT_NIGHTLY_UTC_HOUR || '3' }}
4444

4545
jobs:

scripts/ci/resolve-build-context.sh

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
set -euo pipefail
44

55
DEFAULT_NIGHTLY_UTC_HOUR='3'
6-
# Canonical fallback nightly cron used when workflow/env does not provide one.
7-
DEFAULT_NIGHTLY_SCHEDULE_CRON='7 3 * * *'
86
DEFAULT_LS_REMOTE_RETRY_ATTEMPTS='3'
97
DEFAULT_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() {
128126
source_git_url="${ASTRBOT_SOURCE_GIT_URL}"
129127
source_git_ref="${ASTRBOT_SOURCE_GIT_REF}"
130128
nightly_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:-}"
132130
nightly_utc_hour="${ASTRBOT_NIGHTLY_UTC_HOUR:-${DEFAULT_NIGHTLY_UTC_HOUR}}"
133131
event_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

Comments
 (0)