fix(crypto/ci): repair Keccak-256 KAT, purge claims_audit pseudo-inferences, enforce boolean release gate, package zymatica_cli
Browse files
.github/workflows/ten_out_of_ten_release_gate.yml
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
name: Zymatica 10.00 Release Evidence Gate
|
| 2 |
+
|
| 3 |
+
on:
|
| 4 |
+
workflow_dispatch:
|
| 5 |
+
inputs:
|
| 6 |
+
evidence_dir:
|
| 7 |
+
description: Committed evidence directory to validate
|
| 8 |
+
required: true
|
| 9 |
+
default: evidence/10_00/latest
|
| 10 |
+
push:
|
| 11 |
+
branches: [main, master]
|
| 12 |
+
tags:
|
| 13 |
+
- 'v*'
|
| 14 |
+
|
| 15 |
+
permissions:
|
| 16 |
+
contents: read
|
| 17 |
+
|
| 18 |
+
jobs:
|
| 19 |
+
evidence-and-claims:
|
| 20 |
+
name: Research Evidence, Claims & Security Gate
|
| 21 |
+
runs-on: ubuntu-latest
|
| 22 |
+
steps:
|
| 23 |
+
- uses: actions/checkout@v4
|
| 24 |
+
with:
|
| 25 |
+
fetch-depth: 0
|
| 26 |
+
|
| 27 |
+
- uses: dtolnay/rust-toolchain@stable
|
| 28 |
+
with:
|
| 29 |
+
toolchain: 1.98.0
|
| 30 |
+
components: rustfmt, clippy
|
| 31 |
+
|
| 32 |
+
- uses: actions/setup-python@v5
|
| 33 |
+
with:
|
| 34 |
+
python-version: '3.11'
|
| 35 |
+
|
| 36 |
+
- name: Python Package Install & Import Smoke Test
|
| 37 |
+
shell: bash
|
| 38 |
+
run: |
|
| 39 |
+
python -m pip install --upgrade pip
|
| 40 |
+
python -m pip install -e .
|
| 41 |
+
python -c "import sys; sys.path.insert(0, 'crates/zymatica-agent-harness'); import zymatica_cli; print('zymatica_cli ok')"
|
| 42 |
+
|
| 43 |
+
- name: Resolve evidence directory
|
| 44 |
+
id: evidence
|
| 45 |
+
shell: bash
|
| 46 |
+
run: |
|
| 47 |
+
if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
|
| 48 |
+
echo "dir=${{ inputs.evidence_dir }}" >> "$GITHUB_OUTPUT"
|
| 49 |
+
else
|
| 50 |
+
echo "dir=evidence/10_00/latest" >> "$GITHUB_OUTPUT"
|
| 51 |
+
fi
|
| 52 |
+
|
| 53 |
+
- name: Verify code before accepting evidence
|
| 54 |
+
shell: bash
|
| 55 |
+
run: |
|
| 56 |
+
cargo fmt --all -- --check
|
| 57 |
+
cargo clippy --workspace --all-targets --locked -- -D warnings
|
| 58 |
+
cargo test --workspace --locked
|
| 59 |
+
cargo build --workspace --release --locked
|
| 60 |
+
|
| 61 |
+
- name: Compile all Python verification code
|
| 62 |
+
run: python -m compileall -q tools/ten_out_of_ten crates/zymatica-language-u
|
| 63 |
+
|
| 64 |
+
- name: Validate quantitative evidence thresholds
|
| 65 |
+
run: python tools/ten_out_of_ten/acceptance_gate.py --evidence-dir "${{ steps.evidence.outputs.dir }}"
|
| 66 |
+
|
| 67 |
+
- name: Validate research-claim evidence links
|
| 68 |
+
run: python tools/ten_out_of_ten/claims_audit.py --root . --json-output "${{ steps.evidence.outputs.dir }}/claims_audit.json"
|
| 69 |
+
|
| 70 |
+
- name: Validate license consistency
|
| 71 |
+
run: python tools/ten_out_of_ten/license_audit.py --root . --json-output "${{ steps.evidence.outputs.dir }}/license_audit.json"
|
| 72 |
+
|
| 73 |
+
- name: Execute Full Evidentiary Release Gate (Master Verifier)
|
| 74 |
+
run: python verify_release.py --release-tag "v10.1.1-evidence"
|
| 75 |
+
|
| 76 |
+
- name: Generate evidence manifest and checksums
|
| 77 |
+
run: python scripts/package_release_evidence.py
|
| 78 |
+
|
| 79 |
+
- name: Upload evidence bundle artifact
|
| 80 |
+
uses: actions/upload-artifact@v4
|
| 81 |
+
with:
|
| 82 |
+
name: release-evidence-manifest
|
| 83 |
+
path: ${{ steps.evidence.outputs.dir }}/
|
| 84 |
+
retention-days: 90
|
| 85 |
+
|
| 86 |
+
- name: RustSec dependency audit
|
| 87 |
+
shell: bash
|
| 88 |
+
run: |
|
| 89 |
+
cargo install cargo-audit --locked
|
| 90 |
+
cargo audit --ignore RUSTSEC-2025-0055 --ignore RUSTSEC-2026-0253 --ignore RUSTSEC-2024-0388 --ignore RUSTSEC-2024-0436
|