From adbe4d9c022820ded98d0bfd38ef99a32c711877 Mon Sep 17 00:00:00 2001 From: Tucker McCoy Date: Mon, 10 Aug 2026 09:29:57 -0400 Subject: [PATCH] fix(release): drop dangling docs artifacts and enforce manifest schema PR #18 removed the documentation packaging steps but left the release notes advertising a docs snapshot tarball and the GitHub release step looking for it. Nothing writes dist/docs, so the published notes point customers at an artifact that is never produced. Extend docs.sourceFormat with the values the manifests actually use. The docs pipeline moved to static-site and the schema was never updated, so v1.0.2 and v1.1.0 did not conform. Add snapshotTag, which the release tooling already emits. Validate every release manifest against the schema in helm CI. The schema was unreferenced, which is how the enum drifted unnoticed; helm-ci already triggers on schemas/**. Co-Authored-By: Claude Opus 5 (1M context) --- .github/workflows/helm-ci.yaml | 8 ++++++++ .github/workflows/release-platform-package.yaml | 6 ------ schemas/release-manifest.schema.json | 3 ++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.github/workflows/helm-ci.yaml b/.github/workflows/helm-ci.yaml index b734498..d62818e 100644 --- a/.github/workflows/helm-ci.yaml +++ b/.github/workflows/helm-ci.yaml @@ -131,6 +131,14 @@ jobs: grep -q 'registry.customer.example/eqtylab/guardian-console' /tmp/repository-prefix-override.yaml fi + - name: Validate release manifests against schema + run: | + python3 -m venv /tmp/schema-venv + /tmp/schema-venv/bin/pip install --quiet check-jsonschema + /tmp/schema-venv/bin/check-jsonschema \ + --schemafile schemas/release-manifest.schema.json \ + releases/v*/release-manifest.yaml + - name: Validate release manifests run: | shopt -s nullglob diff --git a/.github/workflows/release-platform-package.yaml b/.github/workflows/release-platform-package.yaml index 017d945..e4843b8 100644 --- a/.github/workflows/release-platform-package.yaml +++ b/.github/workflows/release-platform-package.yaml @@ -385,7 +385,6 @@ jobs: ### Artifacts - Connected package: \`governance-platform-v${VERSION}.tar.gz\` - - Documentation snapshot: \`docs-v${VERSION}.tar.gz\` (also included in the package under \`docs/\`; works offline) - Release manifest: \`release-manifest.yaml\` - Chart digests: \`chart-digests.yaml\` - Runtime image tags: \`${VERSION}\` @@ -414,11 +413,6 @@ jobs: assets+=("dist/governance-platform-v${VERSION}-airgap.tar.gz.sha256") fi - if [ -f "dist/docs/docs-v${VERSION}.tar.gz" ]; then - assets+=("dist/docs/docs-v${VERSION}.tar.gz") - assets+=("dist/docs/docs-v${VERSION}.tar.gz.sha256") - fi - flags=() if [ "$PRERELEASE" = "true" ]; then flags+=(--prerelease) diff --git a/schemas/release-manifest.schema.json b/schemas/release-manifest.schema.json index 1d1b535..63f2ede 100644 --- a/schemas/release-manifest.schema.json +++ b/schemas/release-manifest.schema.json @@ -77,7 +77,8 @@ "url": { "type": "string" }, "sourceRepository": { "type": "string" }, "sourceCommit": { "type": "string" }, - "sourceFormat": { "enum": ["md", "mdx"] }, + "sourceFormat": { "enum": ["md", "mdx", "static-site", "readme"] }, + "snapshotTag": { "type": "string" }, "workflowRunUrl": { "type": "string" } } }