aarch64: br_table + value-carrying block/loop/if (#851, VCR-A64-CF-001) #124
Workflow file for this run
This file contains hidden or 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
| # Auto-merge safe Dependabot updates so patch/minor dep bumps never require | |
| # hand-gating (they were consuming the maintenance loop one-at-a-time — each | |
| # merge moved main, staling the next). MAJOR bumps of any dep are HELD for | |
| # manual review (the ordeal 0.9->0.12 major bump silently broke synth-verify at | |
| # merge; wasm-tooling majors corrupted Cargo.lock). Auto-merge only enables the | |
| # merge — GitHub still requires every branch-protection gate to pass first, so | |
| # a broken bump cannot land. | |
| name: Dependabot Auto-Merge | |
| on: pull_request_target | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| jobs: | |
| auto-merge: | |
| if: github.actor == 'dependabot[bot]' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Fetch Dependabot metadata | |
| id: meta | |
| uses: dependabot/fetch-metadata@v3 | |
| # A 0.x MINOR bump is BREAKING by semver convention (for 0.x the MINOR | |
| # component is the de-facto major), but Dependabot reports it as | |
| # `semver-minor` because the major component is still 0. That gap bit synth | |
| # TWICE on the SAME dep: ordeal 0.9->0.12 (added `BvTerm::Urem`, broke every | |
| # exhaustive match) and again 0.9->0.16 (#864 — landed with NO CI run and | |
| # left `main` uncompilable). So: HOLD when the previous version is 0.x and | |
| # the minor component changed. | |
| - name: Classify 0.x-minor as breaking (hold) | |
| id: zerox | |
| env: | |
| # Via env (never interpolated into the script body): this is a | |
| # pull_request_target workflow with contents:write, so no | |
| # ${{ }} expansion inside `run:`. | |
| PREV_VERSION: ${{ steps.meta.outputs.previous-version }} | |
| NEW_VERSION: ${{ steps.meta.outputs.new-version }} | |
| UPDATE_TYPE: ${{ steps.meta.outputs.update-type }} | |
| run: | | |
| hold=false | |
| if [ "$UPDATE_TYPE" = "version-update:semver-minor" ]; then | |
| case "$PREV_VERSION" in | |
| 0.*) | |
| pm=$(printf '%s' "$PREV_VERSION" | cut -d. -f2) | |
| nm=$(printf '%s' "$NEW_VERSION" | cut -d. -f2) | |
| [ "$pm" != "$nm" ] && hold=true | |
| ;; | |
| esac | |
| fi | |
| echo "hold=$hold" >> "$GITHUB_OUTPUT" | |
| echo "0.x-minor hold=$hold ($PREV_VERSION -> $NEW_VERSION)" | |
| - name: Enable auto-merge for patch + true-minor updates | |
| if: (steps.meta.outputs.update-type == 'version-update:semver-patch' || steps.meta.outputs.update-type == 'version-update:semver-minor') && steps.zerox.outputs.hold != 'true' | |
| run: gh pr merge --auto --squash "$PR_URL" | |
| env: | |
| PR_URL: ${{ github.event.pull_request.html_url }} | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Comment + label held 0.x-minor bumps | |
| if: steps.zerox.outputs.hold == 'true' | |
| env: | |
| PR_URL: ${{ github.event.pull_request.html_url }} | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| PREV_VERSION: ${{ steps.meta.outputs.previous-version }} | |
| NEW_VERSION: ${{ steps.meta.outputs.new-version }} | |
| run: | | |
| gh pr edit "$PR_URL" --add-label "major-bump-hold" 2>/dev/null || true | |
| gh pr comment "$PR_URL" --body "🔒 **0.x MINOR bump — held for manual review.** \`$PREV_VERSION\` → \`$NEW_VERSION\`: for a 0.x crate the MINOR component is the de-facto major, so this is BREAKING even though Dependabot labels it \`semver-minor\`. This gap broke synth twice on \`ordeal\` (0.9→0.12 added \`BvTerm::Urem\`, breaking every exhaustive match; 0.9→0.16 in #864 landed with no CI run and left main uncompilable). Build EVERY affected feature set (incl. \`--features z3-solver\`) and run the full \`synth-verify\` suite before merging." | |
| - name: Comment + label major updates for manual review | |
| if: steps.meta.outputs.update-type == 'version-update:semver-major' | |
| run: | | |
| gh pr edit "$PR_URL" --add-label "major-bump-hold" 2>/dev/null || true | |
| gh pr comment "$PR_URL" --body "🔒 **Major version bump — held for manual review.** Not auto-merged: a major bump of a load-bearing dep (solver/wasm-tooling/proof) can break the build at merge (ordeal 0.9→0.12 added an enum variant; wasm-tooling majors corrupted Cargo.lock). Review the changelog + build the affected feature sets before merging." | |
| env: | |
| PR_URL: ${{ github.event.pull_request.html_url }} | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} |