Repository navigation
One-click install: release workflow publishes the jar (build, smoke test, attach) - #33
Merged
Merged
Conversation
…ADME install for users Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y2SN8SuEakTdiWy3F2WUqN
…chinery Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y2SN8SuEakTdiWy3F2WUqN
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y2SN8SuEakTdiWy3F2WUqN
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y2SN8SuEakTdiWy3F2WUqN
…very job Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y2SN8SuEakTdiWy3F2WUqN
…rter timeouts, skip after no gui Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y2SN8SuEakTdiWy3F2WUqN
… Python apps Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y2SN8SuEakTdiWy3F2WUqN
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y2SN8SuEakTdiWy3F2WUqN
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y2SN8SuEakTdiWy3F2WUqN
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.
What changes
CI and docs only; no change to the extension code (Java and Groovy sources untouched).
.github/workflows/release.yml(new). Triggers:release: published,workflow_dispatch(inputtag), andpull_requestlimited to the files of the release machinery (a dry run, never publishes). Third-party actions pinned by SHA with the tag in a comment;permissions: contents: readat top level,contents: writeonly on thepublishjob.build(Linux, Java 25, QuPath 0.7.0 pinned by version and SHA-256, cached, same setup asqupath-gui.yml): buildslabconstrictor-qupath-<tag>.jarandLabConstrictorTools-all.groovywithbuild.sh; checks the version inside the jar; smoke test on that exact jar (QuPath 0.7.0 on Xvfb with the jar installed on its class path: the menu entry Extensions > LabConstrictor tools exists and the dialog opens); writesSHA256SUMSand the notes text (QuPath version it was built against, minimum Tools version read fromLcCompat.MIN_TOOLS_VERSION= 0.3.0a1); uploads everything as the workflow artifactrelease-files. The tag name is validated (letters, digits,.-_) before it becomes a file name.publish(only onrelease, needs onlybuild): attaches the jar,LabConstrictorTools-all.groovyandSHA256SUMSto the release and appends the notes block (once; marker comment) to the release body.os-smoke(best effort,fail-fast: false,continue-on-error, does not gatepublish): the same jar onwindows-latestandmacos-latest(arm64) in the pinned QuPath 0.7.0 build of that system (Windows zip, macOS pkg; version and SHA-256 pinned), on the runner's desktop, with a tiny Tools example app registered in a scratch LC_HOME using that OS's Python. Steps: menu entry + dialog + the registered app listed, then four existing test bodies that reach OS-specific code (Copy-as-command quoting vsquote_vectors.json, trust checks, results folders, clean-up). Per-step result table in the job summary (pass / fail with reason / no gui).build.sh: version fromLC_QUPATH_VERSION(default0.1.0, same file names as before); the jar gets a manifest withImplementation-TitleandImplementation-Version. There is no version string in the code, so the manifest is where the tag shows.tests/smoke_jar.groovy,tests/smoke_jar.sh(Linux),tests/smoke_os.sh,tests/ci_setup_os.sh(new).README.md: Install section for users (app, jar from Releases, Extensions menu; Script Editor way; Troubleshooting; honest QuPath version and system statement); Build from source shortened, with how releases and the dry run work.docs/user-guide.md: install steps point to the Releases page.Dry run (workflow run on this branch, head e0fc776, no release created)
https://github.com/CellMigrationLab/LabConstrictor-QuPath/actions/runs/38459825466 : run conclusion success.
buildjob (build, version check, smoke on the exact jar, SHA256SUMS, upload): success.publishskipped (not a release), as intended.gui_test_parity_quote_body(1 check, expects POSIX-shell quoting),gui_test_parity_trust_body(8 checks: on Windows the registry owner/mode checks do not exist, a group-writable entry is accepted: the documented Windows note),gui_test_retention_body(9 checks: the body itself useschmodand a POSIX recorder, so the prune/locking path is not exercised). Windows interpreter path: the venv'sScripts\python.exeinside the prefix is accepted and used; the conda layout (python.exeat the prefix root) is not reachable in CI.Not verified
publishhave never run. The dry run proves build, version and smoke; notgh release upload/edit.tests/run_gui_test.shdoes), not dropped in the extensions folder/dragged onto the window.Existing files changed
build.sh,README.md,docs/user-guide.md. No file is 600 lines or more among the new/changed files (the existing main script is untouched).🤖 Generated with Claude Code
https://claude.ai/code/session_01Y2SN8SuEakTdiWy3F2WUqN