Skip to content

Declare TRACE integration roles and conformance claims #33

Declare TRACE integration roles and conformance claims

Declare TRACE integration roles and conformance claims #33

name: ramen-ai-cmcp conformance
on:
push:
paths:
- "integrations/ramen-ai-cmcp/**"
- "schema/integration.schema.json"
- ".github/workflows/ramen-ai-cmcp-conformance.yml"
pull_request:
paths:
- "integrations/ramen-ai-cmcp/**"
- "schema/integration.schema.json"
- ".github/workflows/ramen-ai-cmcp-conformance.yml"
schedule:
- cron: "0 6 * * 1"
workflow_dispatch:
permissions:
contents: read
jobs:
conformance:
strategy:
fail-fast: false
matrix:
python: ["3.11", "3.12", "3.13", "3.14"]
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v4
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: ${{ matrix.python }}
- name: Install integration and exact TRACE test release
run: pip install -e "integrations/ramen-ai-cmcp[test]"
- name: Unit and trust-boundary tests
run: pytest integrations/ramen-ai-cmcp/tests -q
- name: Emit a natively signed TRACE v0.2 record
run: |
export TRACE_PRIVATE_KEY_PEM="$(openssl genpkey -algorithm ED25519)"
python integrations/ramen-ai-cmcp/examples/emit_record.py \
--out trust-record.json \
--model-provider ramen-ai \
--model-id conformance-fixture-evaluator \
--model-version 1 \
--data-class internal \
--policy-bundle-hash sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \
--slsa-level 0 \
--build-digest sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb \
--builder https://github.com/ramen-ai-dev/ramen-ai-integrations \
--appraisal-verifier https://ramenai.dev/trace/software-only
- name: TRACE v0.2 conformance Level 0
run: trace-tests verify --record trust-record.json --level 0
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: conformance-${{ matrix.os }}-py${{ matrix.python }}
path: trust-record.json