Skip to content

fix(sdk): openrunner update works on PEP 668 externally-managed hosts… #1345

fix(sdk): openrunner update works on PEP 668 externally-managed hosts…

fix(sdk): openrunner update works on PEP 668 externally-managed hosts… #1345

Workflow file for this run

name: Smoke (E2E)
# Fresh-clone first-run gate (GLA-20 / plan §4).
#
# Boots the docker compose stack from a clean checkout, registers a user via
# the public API, runs the SDK example end-to-end, and asserts the run + a
# logged metric are visible. Mirrors the README quickstart a self-hoster runs.
#
# Flake-budget rule (CEO-acknowledged, GLA-20):
# If the smoke job's flake rate exceeds 5% in week-1 of merge, mark the job
# non-required in branch protection and triage. Do NOT layer job-level
# retries on top of the SDK assertion -- retry policy lives inside
# scripts/smoke.sh on infra-up steps only (the /health/full wait loop), so
# the SDK round-trip stays a single, honest assertion.
on:
pull_request:
branches: [main]
push:
branches: [main]
concurrency:
group: smoke-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
smoke:
name: docker compose + SDK round-trip
runs-on: ubuntu-latest # Linux x86-64 per GLA-20 acceptance criterion
timeout-minutes: 25
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Show docker + compose versions
run: |
docker --version
docker compose version
- name: Run make smoke
env:
# smoke.sh accepts overrides. Health and run timeouts are bumped
# above the local defaults because GitHub-hosted runners have
# slower image-pull + first-request latency than a dev box; a 90s
# SDK budget timed out on the first PR run (rc=124).
SMOKE_HEALTH_TIMEOUT: "300"
SMOKE_RUN_TIMEOUT: "300"
run: make smoke
- name: Upload smoke logs on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: smoke-logs
# `.smoke-logs/` is a dotfile dir; upload-artifact@v4 skips hidden
# files by default (per the v4 changelog). Explicit opt-in needed.
include-hidden-files: true
path: |
.smoke-logs/
if-no-files-found: ignore
retention-days: 7