|
89 | 89 | COPILOT_CLI_PATH: ${{ steps.setup-copilot.outputs.path }} |
90 | 90 | run: mvn verify |
91 | 91 |
|
| 92 | + - name: Validate reference-impl-sync completeness |
| 93 | + if: >- |
| 94 | + github.event_name == 'pull_request' && |
| 95 | + contains(github.event.pull_request.labels.*.name, 'reference-impl-sync') |
| 96 | + run: | |
| 97 | + git fetch origin main --depth=1 |
| 98 | + CHANGED=$(git diff --name-only origin/main...HEAD) |
| 99 | +
|
| 100 | + # 1. .lastmerge must be updated (proves finish script ran) |
| 101 | + if echo "$CHANGED" | grep -q '^\\.lastmerge$'; then |
| 102 | + echo "✅ .lastmerge was updated (finish script ran)" |
| 103 | + else |
| 104 | + echo "❌ .lastmerge was not updated. The merge-reference-impl-finish.sh script" |
| 105 | + echo " must be run before this PR can merge. This script updates .lastmerge," |
| 106 | + echo " syncs the CLI version in pom.xml, and syncs scripts/codegen/package.json." |
| 107 | + exit 1 |
| 108 | + fi |
| 109 | +
|
| 110 | + # 2. If codegen inputs changed, generated output must also have changed |
| 111 | + if echo "$CHANGED" | grep -q '^scripts/codegen/'; then |
| 112 | + if echo "$CHANGED" | grep -q '^src/generated/java/'; then |
| 113 | + echo "✅ Codegen inputs changed and generated files were regenerated" |
| 114 | + else |
| 115 | + echo "❌ scripts/codegen/ was updated but src/generated/java/ has no changes." |
| 116 | + echo " The Codegen Check workflow should regenerate these files automatically." |
| 117 | + echo " If it hasn't run yet, wait for it to complete and push regenerated files." |
| 118 | + echo " Or run manually: cd scripts/codegen && npm ci && npm run generate" |
| 119 | + exit 1 |
| 120 | + fi |
| 121 | + else |
| 122 | + echo "✅ No codegen input changes — regeneration not needed" |
| 123 | + fi |
| 124 | +
|
92 | 125 | - name: Upload test results for site generation |
93 | 126 | if: success() && github.ref == 'refs/heads/main' |
94 | 127 | uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 |
|
0 commit comments