Skip to content

Gate publishing on a smoke test, and listen to JoltPhysicsC #7

Gate publishing on a smoke test, and listen to JoltPhysicsC

Gate publishing on a smoke test, and listen to JoltPhysicsC #7

Workflow file for this run

# Measures what a pull request does to the public API surface, and reports whether
# anything a consumer could notice changed.
#
# auto-merge is on, and the reasoning is worth stating because the risk here is not the
# usual one. The agent that opens these pull requests regenerates C# from a C header; it
# does not write the C. So the failure it could introduce is a binding that disagrees with
# the library, and that is what the gate measures: the API delta, plus every P/Invoke
# resolving in all ten shipped libraries.
#
# What the gate cannot judge is whether the C wrapper itself is right, and that question
# is answered upstream in JoltPhysicsC -- where a bump compiles on ten platforms and runs
# eleven test suites before a release is cut. A wrapper defect is caught there, not here.
name: api
on:
pull_request:
branches: [main]
permissions:
contents: read
pull-requests: write
jobs:
api:
uses: EvergineTeam/Evergine.Bindings/.github/workflows/binding-api-gate.yml@v1
with:
binding-project: "Evergine.Bindings.JoltPhysics/Evergine.Bindings.JoltPhysics.csproj"
dotnet-version: "10.x"
# Windows, same reason as CI and CD: the parse aborts on Linux, and a partial
# surface compared against a full one reads as a large removal.
runner-os: windows-latest
# This package ships ten native libraries, and the agent that opens these pull
# requests runs the generator, not the native build. Without this the coherence
# check would run alongside the gate, go red, and the merge would proceed anyway.
native-coherence: true
auto-merge: true
app-client-id: ${{ vars.APP_CLIENT_ID }}
secrets:
APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }}