Answer the value MEOS writes through an out-parameter #49
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
| name: CI | |
| on: | |
| push: | |
| pull_request: | |
| jobs: | |
| build: | |
| name: Regenerate, build and smoke-test against MEOS | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: '8.0.x' | |
| - name: Provision MEOS (build libmeos + generate catalog) | |
| id: provision | |
| # Derive the MEOS catalog (meos-idl.json) and the libmeos build from upstream | |
| # MobilityDB master through the shared provision-meos action. Tracking master | |
| # (not a pinned commit) keeps the source, the catalog and the native library the | |
| # binding is generated against all moving together. | |
| uses: MobilityDB/MEOS-API/.github/actions/provision-meos@master | |
| with: | |
| mobilitydb-ref: master | |
| build-libmeos: "true" | |
| # The committed generated tree is what a consumer of this repository | |
| # compiles, and every step below overwrites it, so whether it still holds | |
| # together is decided HERE or nowhere. Drift against a freshly derived | |
| # catalog is ordinary — MobilityDB master moves independently of this | |
| # binding — but a snapshot declaring a function MEOS no longer exports | |
| # reaches that consumer as an EntryPointNotFoundException at run time. | |
| - name: Resolve the COMMITTED snapshot against MEOS | |
| run: | | |
| dotnet build MEOS.NET.sln -c Release | |
| dotnet test MEOS.NET.sln -c Release --no-build \ | |
| --filter "FullyQualifiedName~NativeSymbolTests" | |
| env: | |
| LD_LIBRARY_PATH: ${{ steps.provision.outputs.libmeos-prefix }}/lib | |
| - name: Regenerate bindings | |
| run: python3 tools/codegen.py "${{ steps.provision.outputs.catalog-path }}" | |
| - name: Regenerate the object layer | |
| run: python3 tools/objectgen.py "${{ steps.provision.outputs.catalog-path }}" --report | |
| - name: Report binding drift | |
| run: git --no-pager diff --stat -- MEOS.NET/Functions MEOS.NET/Types || true | |
| - name: Build solution | |
| run: dotnet build MEOS.NET.sln -c Release | |
| - name: Run tests | |
| run: dotnet test MEOS.NET.sln -c Release --no-build | |
| env: | |
| LD_LIBRARY_PATH: ${{ steps.provision.outputs.libmeos-prefix }}/lib | |
| - name: Smoke-test the FFI | |
| run: dotnet run --project ExampleApp/ExampleApp.csproj -c Release --no-build | |
| env: | |
| LD_LIBRARY_PATH: ${{ steps.provision.outputs.libmeos-prefix }}/lib |