Skip to content

ci: smoke-test published releases on every supported OS/arch#43

Merged
dfa1 merged 3 commits into
mainfrom
ci/release-smoke-matrix
Jun 28, 2026
Merged

ci: smoke-test published releases on every supported OS/arch#43
dfa1 merged 3 commits into
mainfrom
ci/release-smoke-matrix

Conversation

@dfa1

@dfa1 dfa1 commented Jun 28, 2026

Copy link
Copy Markdown
Owner

A manually-triggered (workflow_dispatch) matrix that verifies a published release on Maven Central actually loads and runs on every supported OS/arch — one GitHub-hosted runner per native classifier.

Matrix

classifier runner
linux-x86_64 ubuntu-latest
linux-aarch64 ubuntu-24.04-arm
osx-x86_64 macos-13
osx-aarch64 macos-14
windows-x86_64 windows-latest
windows-aarch64 windows-11-arm

ARM Linux/Windows runners are GA and free for public repos.

What it does

Pulls zstd:<version> + the matching zstd-native-<classifier>:<version> from Central (no source build, no zig, no submodule) and runs .github/smoke/Smoke.java via JBang: a core compress/decompress round-trip plus a dictionary train + round-trip. Proves the bundled native library loads and works on real hardware per arch — exactly what users consume.

Trigger from the Actions tab; defaults to 0.6.

Validation

Compiled against the real zstd:0.6 API (caught that ZstdDictionary isn't AutoCloseable — fixed) and ran end-to-end on osx-aarch64: OK Mac OS X/aarch64 | zstd 1.5.7 | core 40000 -> 38 bytes | dictionary round-trip passed.

Follow-ups

  • jbangdev/setup-jbang@main should be SHA-pinned to match the repo's action-pinning convention (see setup-zig in ci.yml).
  • Confirm Temurin ships JDK 25 for windows-11-arm / ubuntu-24.04-arm; swap distribution if a leg fails at setup-java.

🤖 Generated with Claude Code

dfa1 and others added 3 commits June 28, 2026 08:25
Add a manually-triggered workflow that pulls a released version from Maven
Central and runs a JBang smoke test on one GitHub-hosted runner per native
classifier: linux-x86_64 (ubuntu-latest), linux-aarch64 (ubuntu-24.04-arm),
osx-x86_64 (macos-13), osx-aarch64 (macos-14), windows-x86_64
(windows-latest), windows-aarch64 (windows-11-arm).

The smoke (.github/smoke/Smoke.java) exercises a core compress/decompress
round-trip plus a dictionary train + round-trip, so it proves the bundled
native library actually loads and works on real hardware for each arch — not
a source build (no zig, no submodule), exactly what users consume.

Verified locally end-to-end on osx-aarch64 against 0.6
(core 40000 -> 38 bytes, dictionary round-trip passed, zstd 1.5.7).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Make the version input optional: leave it blank to auto-resolve the latest
release from zstd's maven-metadata.xml (<release>), or pass a specific
version to override. A resolve job picks the version and feeds it to the
matrix. Verified the metadata fetch returns 0.6.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add a Monday 06:00 UTC schedule. Scheduled runs carry no input, so the
resolve job auto-picks the latest Maven Central release — catching Central
or runner-image drift against the published artifact without a manual run.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@dfa1 dfa1 merged commit ba11faf into main Jun 28, 2026
1 check passed
@dfa1 dfa1 deleted the ci/release-smoke-matrix branch June 28, 2026 06:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant