From edd5254f730f73b658c2c56d19a3133d649518d1 Mon Sep 17 00:00:00 2001 From: jehrr <79864894+jehrr@users.noreply.github.com> Date: Fri, 16 Oct 2026 11:56:36 +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 +--- CONTRIBUTING.md | 4 ++-- README.md | 2 +- 4 files changed, 7 insertions(+), 13 deletions(-) diff --git a/.github/workflows/canary.yml b/.github/workflows/canary.yml index 498ad02..cdde5b0 100644 --- a/.github/workflows/canary.yml +++ b/.github/workflows/canary.yml @@ -1,9 +1,9 @@ -# One real run of each mode against news.ycombinator.com, daily. tests.yml +# One real run of each mode against news.ycombinator.com, weekly (Mondays). tests.yml # (deliberately) never touches the site. # # No secrets are needed, and that is the point of running it: the README's # central claim is "no key, no proxy, no account", and an ungated scheduled -# canary is that sentence under test every morning. Every +# canary is that sentence under test every Monday. Every # page kind answered a datacentre address normally when this repo was written # (2026-09-30); a GitHub runner is a datacentre address too. So this is NOT # gated on a secret: a canary that CAN pass without a credential must not be @@ -26,10 +26,6 @@ name: canary on: schedule: # 05:40 UTC. Not on the hour: every scheduled workflow fires at :00. - - cron: "40 5 * * *" - # 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: "40 5 * * 1" workflow_dispatch: @@ -73,7 +69,7 @@ jobs: pages: 1 floor: 1 env: - HACKERNEWS_PROXY: ${{ (github.event_name != 'schedule' || github.event.schedule == '40 5 * * 1') && secrets.HACKERNEWS_PROXY || '' }} + HACKERNEWS_PROXY: ${{ secrets.HACKERNEWS_PROXY }} steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e5d2c4..291eb0c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,9 +11,7 @@ said so at the top of its release notes. ### Changed -- CI only: the canary's optional paid secret `HACKERNEWS_PROXY` now reaches it only on a new weekly - run (Mondays 05:40 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 05:40 UTC) and on a manual dispatch, with its optional secret `HACKERNEWS_PROXY` passed on every run; the daily schedule is removed. ## [0.1.0] — 2026-10-15 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8c11e33..6722c72 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -86,7 +86,7 @@ history needs a decision, not a red check on every push. Then the rest of the presentation, in the order that matters: 1. `python3 smoke_test.py` green, and the canary dispatched at least once. - It runs daily with no secrets at all and is expected to be green, because + It runs weekly (Mondays) with no secrets at all and is expected to be green, because no mode needs a credential and a green badge there is exactly the claim the README makes. 2. The repo description, homepage and topics set (see the family notes on @@ -154,7 +154,7 @@ news.ycombinator.com, be gentle with it: not for a loop. Never loop a live run. About fifty requests spaced 4 s apart drew no throttle on 2026-09-30, from one datacentre address, which is one measurement. -* **The canary is the scheduled live check.** It is three pages daily from a +* **The canary is the scheduled live check.** It is three pages weekly (Mondays) from a GitHub runner and needs no secret. Say in the PR what you ran (engine, mode, URL), and what you got, including diff --git a/README.md b/README.md index 8d8c7ef..2400438 100644 --- a/README.md +++ b/README.md @@ -96,7 +96,7 @@ is handled as a refusal and was never seen either. The canary (`.github/workflows/canary.yml`) ran once by hand on 2026-09-30 from a GitHub-hosted runner with no proxy and no secret, and all four jobs passed (front page and `/newest` 90 rows each, a 71-comment thread, a profile). That -is one run from one address; the badge is the daily evidence. +is one run from one address; the badge is the weekly evidence. ## Being polite