Build/test/package Release in CI; add consumer + JNI API tests#363
Merged
Conversation
Builds on the self-contained fix. Closes the loop so the published zip is the exact binary CI built, tested, and checked. CI (build-and-test.yml): - Matrix by published classifier: linux-x86_64, win-x86_64, darwin-aarch64, and darwin-x86_64 (cross-built on the arm64 runner via Rosetta, since GitHub no longer offers an Intel runner). Actions to v4, JDK to Temurin. - Build and test the Release configuration (was Debug/default). - CPack packages the native + header from the same gated build into a per-classifier artifact, instead of a separately produced zip. API boundary tests (run on every build, need only the built lib): - consume_hecdss -- links the shared hecdss target and calls the exported C API, exercising the import lib / symbol visibility / runtime-load path. - jni_load -- runs a real JVM that System.load()s javaHeclib and calls a native method, proving the JNI artifact loads and binds in a matching JVM. zlib gets SKIP_INSTALL_ALL so it isn't packaged alongside. Note: the darwin-x86_64 job still runs the full ctest suite, including the Dss-C functional test, under Rosetta. If that test is emulation-sensitive, exclude it on that job (ctest -E) rather than letting it gate linkage checks.
|
Contributor
Author
|
Hi @ktarbet 😅 Sorry, I targeted the last PR to the wrong branch. |
ktarbet
approved these changes
Jun 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Follow-up to #361 (now merged into
main). This brings the CI/packaging/test work intomain— #362 was accidentally merged into the fix branch instead ofmain, so this re-targets that same change set atmain.Closes the loop so the published zip is the exact binary CI built, tested, and checked.
Changes
CI (
build-and-test.yml)linux-x86_64,win-x86_64,darwin-aarch64,darwin-x86_64(cross-built on the arm64 runner via Rosetta, since GitHub no longer offers an Intel runner). Actions → v4, JDK → Temurin.zlibgetsSKIP_INSTALL_ALLso it isn't packaged alongside.API-boundary tests (run on every build, need only the built lib)
consume_hecdss— links the sharedhecdsstarget and calls the exported C API, exercising the import-lib / symbol-visibility / runtime-load path.jni_load— runs a real JVM thatSystem.load()sjavaHecliband calls a native method, proving the JNI artifact loads and binds in a matching-arch JVM.Known item
The
darwin-x86_64job currently runs the fullctestsuite — including theDss-Cfunctional test — under Rosetta. If that test proves emulation-sensitive, exclude it on that job (ctest -E Dss-C) rather than letting it gate the linkage/self-containment checks. Left as a follow-up pending observed CI behavior.