Conformance #85
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: Conformance | |
| # Runs the W3C VCDM 2.0 interoperability test suite against the ASP.NET shim. Heavier than CI (clones | |
| # + installs the Node suite), so it runs on PRs that touch the engine, nightly, and on demand — not in | |
| # the main build matrix. | |
| on: | |
| pull_request: | |
| branches: [main] | |
| # Only when the engine / its tests / this workflow change — a docs-only PR shouldn't clone the | |
| # Node suite and run the ~8-minute conformance suite. | |
| paths: | |
| - 'src/**' | |
| - 'tests/**' | |
| - '.github/workflows/conformance.yml' | |
| schedule: | |
| - cron: '0 6 * * *' | |
| workflow_dispatch: | |
| concurrency: | |
| group: conformance-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| w3c-vcdm2: | |
| name: W3C VCDM 2.0 suite | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-dotnet@v4 | |
| with: | |
| global-json-file: global.json | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| # Cloned unpinned from HEAD (pinning a SHA would need manual bumps). A breaking upstream change | |
| # could surface as a nightly failure that looks like a regression — check the suite's recent | |
| # history before treating a sudden nightly drop as an engine regression. | |
| - name: Prepare the W3C VCDM 2.0 test suite | |
| run: | | |
| git clone --depth 1 https://github.com/w3c/vc-data-model-2.0-test-suite "$RUNNER_TEMP/vcdm2-suite" | |
| cd "$RUNNER_TEMP/vcdm2-suite" | |
| npm install --no-audit --no-fund | |
| - name: Build the shim + harness | |
| run: dotnet build tests/Credentials.Conformance.Tests/Credentials.Conformance.Tests.csproj -c Release | |
| # The harness boots the shim on loopback, writes localConfig.cjs, runs the suite, and asserts the | |
| # passing count stays at/above the recorded baseline. It SKIPS (not fails) if the suite is absent. | |
| - name: Run conformance suite | |
| env: | |
| VCDM2_SUITE_DIR: ${{ runner.temp }}/vcdm2-suite | |
| run: dotnet test tests/Credentials.Conformance.Tests/Credentials.Conformance.Tests.csproj -c Release --no-build --filter "Category=Conformance" --logger "console;verbosity=detailed" |