From e25c9190506585abeb83f38c0c6d97cd7e3a544f Mon Sep 17 00:00:00 2001 From: jehrr <79864894+jehrr@users.noreply.github.com> Date: Fri, 16 Oct 2026 11:56:01 +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 | 3 +-- CONTRIBUTING.md | 2 +- README.md | 5 ++--- 4 files changed, 6 insertions(+), 14 deletions(-) diff --git a/.github/workflows/canary.yml b/.github/workflows/canary.yml index 017f724..c86f104 100644 --- a/.github/workflows/canary.yml +++ b/.github/workflows/canary.yml @@ -4,7 +4,7 @@ # Two jobs, because the site has two answers and both are claims the README # makes: # -# datacentre DATACENTRE REFUSAL EXPECTED. No secrets, daily. A +# datacentre DATACENTRE REFUSAL EXPECTED. No secrets, weekly. A # GitHub runner is a datacentre address, and from one # (a netcup VPS, 2026-09-24, and every scheduled run of # this job since) Akamai refused every client, real @@ -18,8 +18,7 @@ # # scraping-browser the path measured to work, and the one that reads real # rows: a Scraping Browser profile with an Indian exit, -# weekly (Mondays) and on dispatch, since every run -# bills a session. It FAILS, with an error naming +# on the same schedule. It FAILS, with an error naming # the secret, when MAKEMYTRIP_CDP_ENDPOINT is not set, # and it fails on a refusal, on "never obtained" (a 401 # is a refused endpoint: set a fresh secret) and on too @@ -39,9 +38,6 @@ name: canary on: schedule: # 05:50 UTC. Not on the hour: every scheduled workflow fires at :00. - - cron: "50 5 * * *" - # Mondays only: the paid job (scraping-browser) runs on this - # schedule (each run bills); the free jobs keep the daily one above. - cron: "50 5 * * 1" workflow_dispatch: @@ -101,8 +97,6 @@ jobs: if-no-files-found: ignore scraping-browser: - # Paid path: weekly schedule or a manual dispatch only. - if: github.event_name != 'schedule' || github.event.schedule == '50 5 * * 1' runs-on: ubuntu-latest timeout-minutes: 20 env: diff --git a/CHANGELOG.md b/CHANGELOG.md index f99160f..3307a05 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,8 +11,7 @@ said so at the top of its release notes. ### Changed -- CI only: the canary's paid `scraping-browser` job now runs weekly (Mondays - 05:50 UTC) and on a manual dispatch; the free `datacentre` job still runs daily. +- CI only: the whole canary, free and paid jobs alike, now runs weekly (Mondays 05:50 UTC) and on a manual dispatch; the daily schedule is removed. ## [0.2.0] — 2026-10-15 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9ecf56d..e385872 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -91,7 +91,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, - both halves. The daily job needs no secrets: it runs from a GitHub runner + both halves. The weekly (Monday) `datacentre` job needs no secrets: it runs from a GitHub runner (a datacentre address) and asserts that Akamai's refusal is reported as exit 3, not as an empty or a crashed run, and if the runner is ever served it checks the rows strictly instead. The second job runs on the diff --git a/README.md b/README.md index 518222c..d41b80c 100644 --- a/README.md +++ b/README.md @@ -260,11 +260,10 @@ site's own end, a refused parameter, each of Akamai's three refusals, a landing that timed out, an empty listing, a throttle and a city name that is no city. -The [canary](.github/workflows/canary.yml) runs twice over. Daily, with no +The [canary](.github/workflows/canary.yml) runs twice over, weekly (Mondays). With no secrets, from a GitHub runner: a datacentre, so it asserts the refusal is REPORTED as one (exit 3, never a crash or an "empty listing"); that job -tests the refusal path, not extraction. Weekly (Mondays), because each run -bills a session, through a Scraping Browser profile: a real 3-page Goa scrape, checked for prices, +tests the refusal path, not extraction. Through a Scraping Browser profile: a real 3-page Goa scrape, checked for prices, currency, duplicates and zero ratings. That job fails when its secret is missing or refused, so the badge is green only when real rows were read.