From a7427a82831f146f56055fb1a13257e57116263a Mon Sep 17 00:00:00 2001 From: jehrr <79864894+jehrr@users.noreply.github.com> Date: Fri, 16 Oct 2026 11:56:43 +0000 Subject: [PATCH] Run every canary job weekly on Mondays The canary now has a single Monday cron. The daily cron is removed, and so is the gating that held the paid job or secret back to the Monday run: a scheduled run and a manual dispatch now run every job the same way, with each secret mapped plainly. A job that needs a secret still fails, naming it, when the secret is missing. Wording that said the canary (or its free half) runs daily now says weekly (Mondays). Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01CKsd7q25N19WzUZjrAdzx8 --- .github/workflows/canary.yml | 10 +++------- CHANGELOG.md | 4 +--- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/.github/workflows/canary.yml b/.github/workflows/canary.yml index 0c7d6bc..6938088 100644 --- a/.github/workflows/canary.yml +++ b/.github/workflows/canary.yml @@ -1,6 +1,6 @@ name: canary -# One real run a day against medium.com, and the only workflow in this repo +# One real run a week (Mondays) against medium.com, and the only workflow in this repo # that touches the site. tests.yml (deliberately) never does — see its own # header for why the two are separate. # @@ -64,10 +64,6 @@ on: schedule: # 06:20 UTC. Off the hour, because everything else in the world runs on # it and a queued runner adds nothing but latency. - - cron: "20 6 * * *" - # Mondays: the same jobs, WITH the paid secrets (proxy, Scraping Browser, - # captcha key). On the daily run above those secrets read as empty, so - # it takes the free no-secret route and bills nothing. - cron: "20 6 * * 1" workflow_dispatch: @@ -103,7 +99,7 @@ jobs: - name: Scrape three days of a tag archive (the legacy-payload path) id: archive env: - MEDIUM_PROXY: ${{ (github.event_name != 'schedule' || github.event.schedule == '20 6 * * 1') && secrets.MEDIUM_PROXY || '' }} + MEDIUM_PROXY: ${{ secrets.MEDIUM_PROXY }} # `set +e`: GitHub runs `run:` steps under `bash -e`, so a non-zero # command aborts the step BEFORE the following echo and # continue-on-error does not change that — it stops the step failing @@ -184,7 +180,7 @@ jobs: - name: Scrape a tag feed (the modern-payload path) id: feed env: - MEDIUM_PROXY: ${{ (github.event_name != 'schedule' || github.event.schedule == '20 6 * * 1') && secrets.MEDIUM_PROXY || '' }} + MEDIUM_PROXY: ${{ secrets.MEDIUM_PROXY }} # Runs even when the archive half failed, so one red run still says # which of the two paths broke. if: always() diff --git a/CHANGELOG.md b/CHANGELOG.md index 3635737..fd8bbb0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,9 +13,7 @@ empty output file. ### Changed -- CI only: the canary's optional paid secret `MEDIUM_PROXY` now reaches it only on a new weekly - run (Mondays 06:20 UTC) and on a manual dispatch. The daily run keeps its - schedule and takes the free route without them, so it bills nothing. +- CI only: the canary now runs weekly (Mondays 06:20 UTC) and on a manual dispatch, with its optional secret `MEDIUM_PROXY` passed on every run; the daily schedule is removed. ## [0.2.0] — 2026-10-16