Repository navigation
Add CI workflow for tip-of-stable PostgreSQL testing - #456
Conversation
📝 WalkthroughWalkthroughAdds a GitHub Actions workflow that builds PostgreSQL from stable-branch tips (15–18), applies Spock patches if present, builds PostgreSQL with TAP enabled, builds/installs Spock, runs regression and TAP suites, and uploads failure artifacts. ChangesPostgreSQL Regression & TAP Test Automation
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Up to standards ✅🟢 Issues
|
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
.github/workflows/pg-stable-test.yml (1)
9-10: ⚡ Quick winAdd a
scheduletrigger to fulfill the workflow's stated purpose.The workflow's rationale is catching regressions that land on stable branches between public releases (~1–3 month window). With only
workflow_dispatch, it must be manually triggered each time, requiring operational discipline rather than automation. A weeklyschedulewould close that gap automatically.⚙️ Suggested addition
on: workflow_dispatch: + schedule: + - cron: '0 3 * * 1' # Every Monday at 03:00 UTC🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.github/workflows/pg-stable-test.yml around lines 9 - 10, The workflow currently only uses the workflow_dispatch trigger so it must be manually started; add a schedule trigger alongside workflow_dispatch to run automatically (e.g., a weekly cron) so the intended periodic regression checks occur; update the triggers block to include both workflow_dispatch and a schedule entry (using the schedule key and a cron string) so the workflow runs on the desired cadence.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/pg-stable-test.yml:
- Around line 57-68: The patch loop currently iterates all entries in PATCH_DIR
using for p in "$PATCH_DIR"/* which can pass non-patch files to patch -p1;
change the loop to only iterate files matching the patch extension (e.g.,
*.patch) and skip non-regular files, so in the block that references PATCH_DIR
and the for p ...; do loop and the patch -p1 invocation you should update the
glob to restrict to "$PATCH_DIR"/*.patch and ensure you test that the matched
file is a regular file before calling patch -p1.
- Around line 107-112: The "Run TAP suite" step currently runs only on success
and is skipped if prior regression fails; update the step named "Run TAP suite"
to include an explicit if: always() condition so it executes regardless of
previous step outcomes, ensuring the TAP suite runs independently and the
subsequent "Upload TAP artifacts on failure" step can collect artifacts
reliably.
---
Nitpick comments:
In @.github/workflows/pg-stable-test.yml:
- Around line 9-10: The workflow currently only uses the workflow_dispatch
trigger so it must be manually started; add a schedule trigger alongside
workflow_dispatch to run automatically (e.g., a weekly cron) so the intended
periodic regression checks occur; update the triggers block to include both
workflow_dispatch and a schedule entry (using the schedule key and a cron
string) so the workflow runs on the desired cadence.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: d9e7d104-89a0-4817-abc5-dbaed6453c60
📒 Files selected for processing (1)
.github/workflows/pg-stable-test.yml
Existing CI (spockbench.yml, installcheck.yml, etc.) builds PostgreSQL from the latest released tag of each major version. That misses regressions that have already landed on the REL_*_STABLE branches but are not yet in a public minor release -- typically a 1-3 month window during which a real upgrade-to-stable user could hit a problem the spock test matrix never exercised.
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/pg-stable-test.yml:
- Line 115: Change the workflow step that currently runs "./run_tests.sh" to
invoke the script with the shell explicitly (e.g., "bash run_tests.sh") so it
will run even if the executable bit is not set; update the command in the job
that references "./run_tests.sh" to call "bash run_tests.sh" (or "sh
run_tests.sh") instead.
- Around line 9-10: Replace the current sole manual trigger under on (which only
contains workflow_dispatch) with a combined trigger that retains
workflow_dispatch and adds a schedule entry so the job runs automatically (e.g.,
a monthly or weekly cron). Update the workflow's top-level on to include both
workflow_dispatch and a schedule: - cron: "..." entry so the stable-branch tests
run on a periodic cadence in addition to manual dispatch; keep the existing
workflow_dispatch to preserve manual runs.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: d4d82df5-4398-498c-abef-88b06bbe4899
📒 Files selected for processing (1)
.github/workflows/pg-stable-test.yml
Existing CI (spockbench.yml, installcheck.yml, etc.) builds PostgreSQL from the latest released tag of each major version. That misses regressions that have already landed on the REL_*_STABLE branches but are not yet in a public minor release -- typically a 1-3 month window during which a real upgrade-to-stable user could hit a problem the spock test matrix never exercised.