ci: release-smoke - run a real Maven build instead of jbang/javac+java#87
Merged
Conversation
Both smoke paths previously bypassed Maven: the native-runner legs used jbang, the container-probe legs used a quiet dependency-plugin:copy + raw javac/java. Output was a single terse line, nothing that looked like an actual build. Move Smoke.java into a standard src/main/java layout and add a standalone .github/smoke/pom.xml (outside the root reactor) that resolves the released zstd + native jars via -Dzstd.version/ -Dzstd.classifier and runs them with exec-maven-plugin. Vendor the Maven Wrapper already used at the repo root so no leg needs a preinstalled Maven - including inside the 8 container-probe images, which now run the same `mvnw compile exec:exec` under their own JDK instead of only executing a bare `java` command compiled on the host. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
amazoncorretto:25-al2023 is a stripped-down image with neither unzip
nor tar, so the vendored mvnw couldn't extract the downloaded Maven
distribution ("tar: command not found"). Discovered by the previous
commit switching this leg from a bare `java` invocation to a real
`mvnw compile exec:exec` - the old path never exercised Maven's own
bootstrap, so this gap was invisible.
Add an optional per-matrix-entry containerSetup command, run before
mvnw inside the container, and set it to `microdnf install -y -q
unzip` for the two al2023 legs.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
… summary The unzip fix for al2023 didn't work: that image has no package manager at all (microdnf: command not found), not just a missing unzip. Rather than chase per-distro package managers across 8 containers, sidestep the problem: extract Maven once on the host (ubuntu-latest always has curl+unzip) from the same pinned distributionUrl the wrapper uses, then mount it read-only into every container. Maven itself is pure Java, so the host-extracted copy runs identically under any container's JDK - no unzip/tar/package manager needed inside the container at all. Also add a `summary` job that pulls per-leg conclusions from the Actions API (continue-on-error hides real per-job failures from the workflow's overall status, but not from job.conclusion) and renders one markdown table on the run's Summary page, so a probe failure isn't missed without opening all 13 jobs individually. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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.
Summary
mvn compile exec:execagainst a standalone.github/smoke/pom.xml, via the same vendored Maven Wrapper already used at the repo root — proper dependency resolution/compile/exec output ending inBUILD SUCCESS, replacing jbang and rawjavac+java.amazoncorretto:25-al2023has no package manager, somvnwcouldn't self-extract. Now Maven is extracted once on the host and mounted read-only into every container — no unzip/tar/package-manager needed inside any container.summaryjob that renders a markdown results table (all 13 legs, gating vs. probe) on the run's Summary page, sincecontinue-on-erroron the probe legs hides real per-job failures from the workflow's overall status.Test plan
workflow_dispatch --ref ci-smoke-maven-build: 13/13 legs pass (https://github.com/dfa1/zstd-java/actions/runs/29676239561)