Skip to content

Don't ping production healthchecks.io monitors from PR CI runs - #141

Merged
edmundmiller merged 3 commits into
mainfrom
cursor/issue-resolution-5505
Aug 18, 2026
Merged

Don't ping production healthchecks.io monitors from PR CI runs#141
edmundmiller merged 3 commits into
mainfrom
cursor/issue-resolution-5505

Conversation

@cursor

@cursor cursor Bot commented Jul 7, 2026

Copy link
Copy Markdown

Fixes #140

Problem

Issue #140 reported the Slack Stats Pipeline as DOWN, but production was healthy. The alert came from CI on fork PR #139, where GitHub withholds repo secrets by design. The Slack/GitHub auth calls failed as expected, but .github/workflows/run_pipelines.yml wrapped every pipeline run in runitor -uuid <production-uuid> -- ... regardless of event type. That sent the expected PR failure straight to the production healthchecks.io monitor, which auto-filed the false DOWN issue.

Fix

  • Skip installing runitor on pull_request events
  • On PR runs, call the pipeline directly (with --destination duckdb) without going through runitor
  • On schedule/workflow_dispatch/push runs, keep using runitor with production UUIDs as before

This prevents fork PR CI failures from triggering production pipeline-down alerts while preserving monitoring for real scheduled runs.

Open in Web View Automation 

cursoragent and others added 2 commits July 7, 2026 15:18
Issue #140 was a false alarm: a fork PR (#139) failed auth as expected
because GitHub withholds repo secrets from fork PR runs, but the pipeline
step always wrapped runs in runitor with production UUIDs. That reported
the expected failure to healthchecks.io, which auto-filed a DOWN alert.

Only install and invoke runitor for non-pull_request events (schedule,
workflow_dispatch, push). PR runs call the pipeline directly so they can
fail without touching production monitoring.

Co-authored-by: Edmund Miller <edmundmiller@users.noreply.github.com>
Address review comments on #141:
- Hoist the PR/non-PR condition into a job-level USE_RUNITOR env so the
  install-step gate and the run-step branch share one source of truth.
- Pass matrix.pipeline/matrix.uuid through env and quote them in the shell
  instead of interpolating ${{ }} directly into the script body.
- concurrent_skipping: always meant a PR run racing a push run got skipped
  entirely, so the pipeline job never ran and the PR showed a vacuous green.
  outdated_runs only skips runs superseded by a newer commit.
- regulatory_report.yml was comments-only, which GitHub cannot parse
  ('workflow is empty') and failed on every push. Converted to .md notes.
@edmundmiller
edmundmiller marked this pull request as ready for review August 18, 2026 19:44
@edmundmiller
edmundmiller requested a review from a team as a code owner August 18, 2026 19:44
@edmundmiller
edmundmiller merged commit 747a8a4 into main Aug 18, 2026
6 checks passed
edmundmiller added a commit that referenced this pull request Aug 18, 2026
Address review comments on #141:
- Hoist the PR/non-PR condition into a job-level USE_RUNITOR env so the
  install-step gate and the run-step branch share one source of truth.
- Pass matrix.pipeline/matrix.uuid through env and quote them in the shell
  instead of interpolating ${{ }} directly into the script body.
@edmundmiller
edmundmiller deleted the cursor/issue-resolution-5505 branch August 18, 2026 19:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Slack Stats Pipeline is DOWN

2 participants