-
Notifications
You must be signed in to change notification settings - Fork 787
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Ensure PR description contains compatibility info & rollout plan when…
… DB schema is changed (#6150)
- Loading branch information
1 parent
239767d
commit b5a79d2
Showing
2 changed files
with
63 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
**Detailed Description** | ||
[In-depth description of the changes made to the schema or interfaces, specifying new fields, removed fields, or modified data structures] | ||
|
||
**Impact Analysis** | ||
- **Backward Compatibility**: [Analysis of backward compatibility] | ||
- **Forward Compatibility**: [Analysis of forward compatibility] | ||
|
||
**Testing Plan** | ||
- **Unit Tests**: [Do we have unit test covering the change?] | ||
- **Persistence Tests**: [If the change is related to a data type which is persisted, do we have persistence tests covering the change?] | ||
- **Integration Tests**: [Do we have integration test covering the change?] | ||
- **Compatibility Tests**: [Have we done tests to test the backward and forward compatibility?] | ||
|
||
**Rollout Plan** | ||
- What is the rollout plan? | ||
- Does the order of deployment matter? | ||
- Is it safe to rollback? Does the order of rollback matter? | ||
- Is there a kill switch to mitigate the impact immediately? |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
name: Workflow for Breaking Change Reminder | ||
on: | ||
pull_request: | ||
paths: | ||
- schema/** | ||
- client/frontend/interface.go | ||
- client/history/interface.go | ||
- client/matching/interface.go | ||
- client/admin/interface.go | ||
|
||
jobs: | ||
breaking-change-pr-template-reminder: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Fail if PR description is missing breaking change template | ||
if: steps.pr-changes.outputs.changes != '[]' | ||
run: | | ||
PR_NUMBER=${{ github.event.pull_request.number }} | ||
PR_URL="https://api.github.com/repos/${{ github.repository }}/pulls/${PR_NUMBER}" | ||
BODY=$(curl $PR_URL | jq '.body') | ||
CHECKLIST=( | ||
"Detailed Description" | ||
"Impact Analysis" | ||
"Testing Plan" | ||
"Rollout Plan" | ||
) | ||
TEMPLATE=$(cat .github/workflows/breaking_change_pr_template.md) | ||
for i in "${CHECKLIST[@]}"; do | ||
if [[ "$BODY" == *"$i"* ]]; then | ||
continue | ||
else | ||
echo "Potential breaking changes detected! Please update the PR description to include following template:" | ||
echo "---" | ||
echo "$TEMPLATE" | ||
echo "---" | ||
exit 1 | ||
fi | ||
done |