Skip to content
Open
38 changes: 38 additions & 0 deletions .github/workflows/checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@ jobs:
permissions:
id-token: write
pull-requests: write
actions: read
steps:
- name: Download build artifacts
uses: actions/download-artifact@v8
Expand All @@ -139,6 +140,22 @@ jobs:
const pr = context.issue.number;
const rtdSlug = 'buckaroo-data';
const docsUrl = `https://${rtdSlug}--${pr}.org.readthedocs.build/en/${pr}/`;
// Deep-link to the Stats / Perf Smoke Report job summary in this
// run (the per-stat time/memory table). Falls back to the run page.
const runUrl = `${context.serverUrl}/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}`;
let perfSmokeUrl = runUrl;
try {
const { data: { jobs } } = await github.rest.actions.listJobsForWorkflowRun({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: context.runId,
per_page: 100,
});
const smoke = jobs.find(j => j.name === 'Stats / Perf Smoke Report');
if (smoke) perfSmokeUrl = `${runUrl}#summary-${smoke.id}`;
} catch (e) {
core.warning(`perf smoke job lookup failed: ${e.message}`);
}
const body = [
'## :package: TestPyPI package published',
'',
Expand All @@ -161,6 +178,8 @@ jobs:
`### :book: [Docs preview](${docsUrl})`,
'',
`### :art: [Storybook preview](${docsUrl}storybook/)`,
'',
`### :stopwatch: [Perf smoke report](${perfSmokeUrl})`,
].join('\n');

const { data: comments } = await github.rest.issues.listComments({
Expand Down Expand Up @@ -308,6 +327,25 @@ jobs:
run: scripts/run_pytest_tolerant.sh uv run --with pytest-cov pytest ./tests/unit -m "not slow" --color=yes --cov anywidget --cov-report xml
- uses: codecov/codecov-action@v6

StatsPerfSmoke:
name: Stats / Perf Smoke Report
runs-on: depot-ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v6
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true
python-version: "3.13"
prune-cache: false
- name: Install the project
run: uv sync --all-extras --dev
- name: Run perf smoke over shipped stats
# Per-stat worst-case time/memory table lands in the job summary;
# the job only fails on the loose smoke limits. See #920.
run: uv run python scripts/perf_smoke_report.py

TestPythonMaxVersions:
name: Python / Test (Max Versions)
runs-on: depot-ubuntu-latest
Expand Down
Loading
Loading