Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

bmc4j/github-actions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

1 Commit

Repository files navigation

bmc4j/github-actions

Reusable GitHub Actions for the bmc4j project.

proof-report

A composite action that aggregates bmc4j proof-summary JSONL records into a results table and posts it as a single marker comment on a pull request — or, on a non-PR event (push to a branch, merge group, dispatch), writes the same table to the run's job-summary page.

It renders a metrics table (proofs ran / expected shard-union / checked / cache hits / live solves / failed), a Failures table with separate why it fails (the ✗ <reason> line) and counterexample columns, lost-shard detection, and an UNKNOWN-kind flake tally.

Inputs

input default description
summary-root summaries Directory holding the *.jsonl proof-summary records (searched recursively).
marker <!-- bmc4j-proof-results --> HTML-comment marker used to find/update the bot's PR comment. Override to adopt an existing comment thread.
github-token ${{ github.token }} Token used to read/post the PR comment. Needs pull-requests: write to comment.
head-sha '' Commit SHA shown (first 7 chars) in the report header.
run-url '' CI run URL shown in the report footer.

The job needs permissions: { contents: read, pull-requests: write }. On a forked PR (read-only token) the comment 403 is swallowed and the table still lands on the job-summary page.

Usage — sharded consumer

Each proof leg uploads a proof-summary-<leg>-<i>-of-<n> artifact; download them all into a dir, then point summary-root at it. The artifact dir names let the renderer recover leg + shard id and detect lost shards.

report:
 needs: [proofs]
 if: ${{ always() }}
 runs-on: ubuntu-latest
 permissions:
 contents: read
 pull-requests: write
 steps:
 - uses: actions/download-artifact@v6
 with:
 path: summaries
 pattern: proof-summary-*
 - uses: bmc4j/github-actions/proof-report@v1
 with:
 summary-root: summaries
 head-sha: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
 run-url: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}

Usage — single-job consumer

Run gradle with -Dbmc.summaryDir=<dir> so each proof writes its JSONL there, then point summary-root at that same dir. The renderer's legOfPath falls back to a single proofs leg for the non-artifact directory naming.

prove:
 runs-on: ubuntu-latest
 permissions:
 contents: read
 pull-requests: write
 steps:
 - uses: actions/checkout@v6
 - uses: actions/setup-java@v5
 with: { distribution: temurin, java-version: '21' }
 - uses: gradle/actions/setup-gradle@v4
 - name: Run proofs
 run: ./gradlew test --console=plain -Dbmc.summaryDir="$GITHUB_WORKSPACE/proof-summary"
 - name: Report proof results
 if: ${{ always() }}
 uses: bmc4j/github-actions/proof-report@v1
 with:
 summary-root: proof-summary
 marker: '<!-- bmc4j-proof-report -->'

Pin to the @v1 tag (it tracks the latest v1.x); never use @main.

About

Reusable composite GitHub Actions for bmc4j (proof-results reporting)

Resources

Stars

Watchers

Forks

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /