Skip to content

ci(release): #260 S2 — per-platform compiler binaries + SHA256SUMS (ADR-019) - #284

Merged
hyperpolymath merged 1 commit into
mainfrom
s260-s2-release-matrix
May 19, 2026
Merged

ci(release): #260 S2 — per-platform compiler binaries + SHA256SUMS (ADR-019)#284
hyperpolymath merged 1 commit into
mainfrom
s260-s2-release-matrix

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

ADR-019 slice S2. release.yml reworked from a single linux tar.gz into the Releases-canonical contract: prepare (idempotent gh release create) → build matrix emitting affinescript-{linux-x64,macos-x64,macos-arm64} raw binaries → checksums producing one SHA256SUMS over all targets. Asset names are the ADR-019 contract the #260 S3 shim verifies against. Uses runner-native gh CLI (no new pinned-action burden; drops the unpinned softprops action). windows-x64 = tracked follow-up (flaky native OCaml Windows CI; fail-fast:false). CI-workflow only; no code/test change (dune 295/295 on base); fires on v* tags only.\n\nRefs #260 #282. Not Closes — S3 (shim) + S4 (wire INT-10) remain.\n\n🤖 Generated with Claude Code

…DR-019)

ADR-019 slice S2. `release.yml` was a single linux job emitting one
tar.gz. Reworked into the Releases-canonical artifact contract:

- `prepare`: idempotent `gh release create <tag> --generate-notes`.
- `build` matrix → `affinescript-<target>` raw executables for
  linux-x64, macos-x64 (macos-13), macos-arm64 (macos-14); each
  `gh release upload --clobber`.
- `checksums` (needs build): `gh release download` all binaries,
  `sha256sum … > SHA256SUMS`, upload it. One manifest over all
  targets — the supply-chain pin the #260 S3 shim embeds per version.

Asset contract is now ADR-019-fixed: `affinescript-<target>` +
`SHA256SUMS` (don't rename without amending ADR-019 + the shim).
Asset handling uses the runner-native `gh` CLI (GITHUB_TOKEN) so no
new third-party action needs SHA-pinning — only the already-pinned
checkout (de0fac2) + setup-ocaml (e32b06) remain; the unpinned
softprops/action-gh-release is dropped. `windows-x64` is a tracked
follow-up (native OCaml Windows CI is flaky; S2 bounded to the three
POSIX targets, fail-fast:false so one platform can't sink the rest).

CI-workflow only — no compiler/source/test change (dune gate
unaffected: 295/295 on the base). Triggers only on `v*` tags.

Refs #260 #282. Not Closes — S3 (the shim) + S4 (wire INT-10) remain.
@hyperpolymath
hyperpolymath merged commit e90a828 into main May 19, 2026
12 of 13 checks passed
@hyperpolymath
hyperpolymath deleted the s260-s2-release-matrix branch May 19, 2026 20:32
@github-actions

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 47 issues detected

Severity Count
🔴 Critical 12
🟠 High 21
🟡 Medium 14

⚠️ Action Required: Critical security issues found!

View findings
[
  {
    "reason": "Stray AI.a2ml in root -- use 0-AI-MANIFEST.a2ml only",
    "type": "banned",
    "file": "AI.a2ml",
    "action": "delete",
    "rule_module": "root_hygiene",
    "severity": "high"
  },
  {
    "reason": "Superseded by 0-AI-MANIFEST.a2ml",
    "type": "banned",
    "file": "AI.djot",
    "action": "delete",
    "rule_module": "root_hygiene",
    "severity": "high"
  },
  {
    "reason": "Issue in quality.yml",
    "type": "missing_workflow",
    "file": "quality.yml",
    "action": "create",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "Issue in security-policy.yml",
    "type": "missing_workflow",
    "file": "security-policy.yml",
    "action": "create",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Action hyperpolymath/standards/.github/workflows/governance-reusable.yml@main needs attention",
    "type": "unpinned_action",
    "file": "governance.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "Action actions/checkout@v4 needs attention",
    "type": "unpinned_action",
    "file": "publish-jsr.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Action denoland/setup-deno@v2 needs attention",
    "type": "unpinned_action",
    "file": "publish-jsr.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/affinescript/affinescript/affinescript-deno-test/example/smoke_driver.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/affinescript/affinescript/affinescript-deno-test/cli.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/affinescript/affinescript/affinescript-deno-test/mod.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant