From 7607efb08ecc9dfe43bf8a7c9b0892829c0e2a31 Mon Sep 17 00:00:00 2001 From: jehrr <79864894+jehrr@users.noreply.github.com> Date: Fri, 16 Oct 2026 11:35:18 +0000 Subject: [PATCH] Pass the canary's paid secrets only on a weekly run; the daily run stays free Paid canary paths (proxy, Scraping Browser, captcha) run weekly on Mondays; free paths keep their daily schedule. A manual dispatch runs everything. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01CKsd7q25N19WzUZjrAdzx8 --- .github/workflows/canary.yml | 12 ++++++++---- CHANGELOG.md | 6 ++++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/.github/workflows/canary.yml b/.github/workflows/canary.yml index 853ec57..c578a45 100644 --- a/.github/workflows/canary.yml +++ b/.github/workflows/canary.yml @@ -45,6 +45,10 @@ on: # Once a day, off the hour, so it is not competing with everyone else's # on-the-hour cron jobs for runner availability. - cron: "37 7 * * *" + # 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: "37 7 * * 1" workflow_dispatch: jobs: @@ -54,8 +58,8 @@ jobs: # `secrets` is not available in a job-level `if`, so presence is tested # here, once, and read from each step's `if` and shell below. These are # the strings "true"/"false", never the secret itself. - HAVE_CDP: ${{ secrets.INDIEGOGO_CDP_ENDPOINT != '' }} - HAVE_PROXY: ${{ secrets.INDIEGOGO_PROXY != '' }} + HAVE_CDP: ${{ (github.event_name != 'schedule' || github.event.schedule == '37 7 * * 1') && secrets.INDIEGOGO_CDP_ENDPOINT != '' }} + HAVE_PROXY: ${{ (github.event_name != 'schedule' || github.event.schedule == '37 7 * * 1') && secrets.INDIEGOGO_PROXY != '' }} steps: - uses: actions/checkout@v4 @@ -98,8 +102,8 @@ jobs: # Through the environment, never argv (see the header). Unset # secrets arrive as "" and env_config.py treats that as unset, so # these lines are correct in both configurations. - INDIEGOGO_CDP_ENDPOINT: ${{ secrets.INDIEGOGO_CDP_ENDPOINT }} - INDIEGOGO_PROXY: ${{ secrets.INDIEGOGO_PROXY }} + INDIEGOGO_CDP_ENDPOINT: ${{ (github.event_name != 'schedule' || github.event.schedule == '37 7 * * 1') && secrets.INDIEGOGO_CDP_ENDPOINT || '' }} + INDIEGOGO_PROXY: ${{ (github.event_name != 'schedule' || github.event.schedule == '37 7 * * 1') && secrets.INDIEGOGO_PROXY || '' }} run: | set +e python3 playwright_scraper.py \ diff --git a/CHANGELOG.md b/CHANGELOG.md index b9a9bf7..5f19892 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,12 @@ the release notes rather than left to be discovered from a bill or a diff. ## [Unreleased] +### Changed + +- CI only: the canary's optional paid secrets `INDIEGOGO_CDP_ENDPOINT`, `INDIEGOGO_PROXY` now reach it only on a new weekly + run (Mondays 07:37 UTC) and on a manual dispatch. The daily run keeps its + schedule and takes the free route without them, so it bills nothing. + ## [0.2.0] — 2026-10-15 > **Behaviour changes for scripts.**