4462863d56
Replace the hand-maintained INTEGRATION_NAMES classifier (and the
bespoke run_tests.py around it) with a directory-driven split:
tests/unit/ unit tests, always run
tests/integration/ Docker-dependent, skip cleanly without Docker
tests/canaries/ upstream-regression checks, opt-in via
CLAUDE_BOTTLE_RUN_CANARIES=1
The pinned-pipelock-image check moves to the canary suite — it tests
upstream packaging, not our code, so it shouldn't gate every dev push.
A scheduled canaries.yml workflow runs it weekly.
The manifest-runtime tests collapse the four assertRaises cases for
distinct 'runtime' values into one subTest loop and drop the
error-message-wording assertions; the contract is "any value is
rejected", not "the error literally contains 'auto-detect'".
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
32 lines
769 B
YAML
32 lines
769 B
YAML
# Weekly canary suite. Catches upstream regressions (broken pipelock
|
|
# image packaging at the pinned digest, etc.) without coupling every
|
|
# dev push to upstream registry availability.
|
|
#
|
|
# Opt-in via CLAUDE_BOTTLE_RUN_CANARIES=1 so the same files can be run
|
|
# locally with the same gating.
|
|
|
|
name: canaries
|
|
|
|
on:
|
|
schedule:
|
|
# 12:00 UTC every Monday.
|
|
- cron: "0 12 * * 1"
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
canaries:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
CLAUDE_BOTTLE_RUN_CANARIES: "1"
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.12"
|
|
|
|
- name: Run canaries
|
|
run: python3 -m unittest discover -t . -s tests/canaries -v
|