Packaging: CPack cdt/cdt-dev deb+rpm+tgz with verified release pipeline#100
Draft
jglanz wants to merge 8 commits into
Draft
Packaging: CPack cdt/cdt-dev deb+rpm+tgz with verified release pipeline#100jglanz wants to merge 8 commits into
jglanz wants to merge 8 commits into
Conversation
…se pipeline - Replace the script-generated single deb with CPack packaging: cdt (wasm toolchain + sysroot) and cdt-dev (native contract-testing libraries) for both deb and rpm, plus a portable tarball with a cdt/ top-level directory; packages install under /usr/cdt (consumers keep discovering the root via lib/cmake/cdt/cdt-config.cmake); the deb keeps the legacy cdt_<version>-1_amd64.deb naming that wire-sysio CI globs - Install rules become relative + component-tagged (installation configuration only; the cmake templates are untouched -- package variants of the config/toolchain files are produced by an additional configure_file pass, the same mechanism the build tree already uses) - llvm tools install from the dereferenced bin/ copies instead of tools/bin symlinks, which embedded dead absolute links into packages - rpm: disable brp post-processing (read+execute-only tools broke brp-strip) and ELF autoreq (parity with SHLIBDEPS OFF) - tools/packaging/tests: verifier suite incl. containerized install + contract-compile smoke (hello contract must produce .wasm/.abi) - build.yaml: package all artifacts into cdt_ubuntu_package_amd64 (additive for consumers) + verify-packages job - release.yaml: workflow_dispatch debug path (pre-release tags, skip-master-check), artifact re-verification, full artifact set + sha256 checksums on the release - docs/release-workflow.md: overview + mermaid activity/sequence diagrams Change-Id: I4cdba149b01f6298a967063fee834653c0a28157
Change-Id: I1ca185cd0954d4a403e92b8192c13581ba6c11c3
…cost cache - concurrency groups on build (per-ref) and release (per-tag) with cancel-in-progress so superseded runs stop automatically - ccache: restore/save split (save even when tests fail, never from PRs), 10G compressed cache, matching the wire-sysio build workflow - ctest cost-data cache for better -j scheduling Change-Id: I64d6422d172bca197f4a43712baa172ab9e5da88
Change-Id: I30c0f058ded79098fa2c356cf40a4e4bd01682ed
PR runs previously produced no package artifact, guaranteeing the verify-packages job (and any release dispatch against a branch commit) fails on artifact download. Same policy as wire-sysio: assemble the package set whenever the ubuntu24 leg builds. Change-Id: I71ef742c3a01d7b2e85e91357f971f384a05fcfd
build-platforms is skipped whenever the builder image is already published, and GitHub propagates skipped ancestors through the default success() check, silently skipping verify-packages. Use the same !cancelled() + result guard the build job already needs for the same reason. Change-Id: Ic53ca3d4a51e9f7117f3c9bdda97645a8cd35d73
actions/cache only saves in its post step when the job succeeds, so failed and cancel-in-progress-superseded builds discarded all vcpkg work. Split into cache/restore + cache/save with unique per-run save keys (caches are immutable) and newest-prefix restore, saving on always(). Change-Id: Ib5bfa223c7fd37cda209f8ef8fba7140df2fa957
…hing works
vcpkg.cmake consumes no -D of that name, so the previous -DVCPKG_BINARY_SOURCES form silently did nothing: vcpkg wrote archives to ~/.cache/vcpkg/archives ('Restored 0 package(s)' every run), .vcpkg-binary-cache never existed, and the cache save step warned 'Path Validation Error ... no cache is being saved'. Export the variable in the Build step instead and drop the dead -D.
Change-Id: Ia2575adf89cf5d79f4acfd78c139623ee0ea24d2
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
generate_package.shpipeline:cdt(wasm toolchain + sysroot) andcdt-dev(native contract-testing libraries) as deb + rpm, plus a portable tarball (cdt/top dir, extract to/opt). Packages install under/usr/cdt; the deb keeps thecdt_<version>-1_amd64.debnaming andcdt_ubuntu_package_amd64artifact contract that wire-sysio CI consumes (now with rpm+tgz added — additive).cdt-config.cmake/CDTMacros.cmake/CDTWasmToolchain.cmakecome from an additionalconfigure_filepass (the mechanism the tree already uses);cdt-config.cmake's existing self-location covers non-default prefixes.bin/copies — the previous source (tools/bin) contains symlinks into the local vcpkg tool dir, which shipped as dead absolute links.tools/packaging/tests/): payload assertions + containerized installs (ubuntu 24.04, fedora) + a contract-compile smoke: the installed toolchain must compile a hello contract to.wasm+.abi. Wired into CI as averify-packagesjob and into the release workflow.workflow_dispatchdebug path (pre-releasev*-rc*tags,skip-master-check), artifact re-verification before publishing, and attaches the full artifact set + sha256 checksums.docs/release-workflow.mdwith mermaid activity + sequence diagrams.Local verification evidence
S1 (tgz layout), S2 (deb, ubuntu:24.04 container), S3 (rpm, fedora container) all PASS including the contract smoke — wasm+abi produced by the installed toolchain in both containers.
Notes
v*-rc*pre-release via the dispatch path.