Repository navigation
Assemble the bundle's installers from the layers' stagings, prebuilt or staged in the run - #3
Open
alexadereyko wants to merge 44 commits into
Open
alexadereyko wants to merge 44 commits into
alexadereyko wants to merge 44 commits into
Conversation
…oost, the old FetchContent block gone
… receipts io.opendaq.bundle and ship an uninstall script
…PATH from the command line for a silent install
…om its stagings' artifacts, installed and smoke-checked
…install with PATH apart
…message box when PATH is longer than 1024 characters
…s a caller built in its run as its artifacts
…s need libpcap.so.1 and OpenSSL 1.1, which Ubuntu lacks
… Layers.cmake and the assembly
…ble.yml builds from them, bundle.yml calls both
…l, as an artifact: OpcUaModules for now
… here, the module after it
… layer staged here
alexadereyko
marked this pull request as ready for review
November 10, 2026 09:44
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.
Brief
The bundle takes one commit per layer (
bundle.json), makes each layer available by FetchLayer, prebuilt from astaging or from its sources, and packs installers. In CI it lays every layer's staging into its run, from the
registry or staged there when the registry lacks it, and assembles the installers from them.
Description
FetchLayer (
cmake/FetchLayer.cmake,cmake/FetchLayer/), FetchContent for layers, knowing nothing of openDAQ:DEPENDS, its axes (tripletbydefault) and its identity:
idx-<sha256>of the commits,pkg-<sha256>of those and the axes, the same as theregistry's tags.
FETCHLAYER_BUILD(NEVER | MISSING | ALWAYS, or per layer) picks a prebuilt staging from the store or thelayer's sources; a prefix is imported, sources are added in one tree.
cmake/Layers.cmakedeclares the layers,cmake/Packing.cmakeandCPackOptions.cmakepack the stagings andcomponents a package preset names (
core,modules,installer).CI (
.github/workflows):bundle.yml: on a pull request, by hand or called; inputs replace a layer's commit frombundle.json. Runsresolve.yml, thenassemble.yml.resolve.yml: resolves the commits and their channels, pulls the stagings the registry has, and stages a missinglayer here by its own
stage.yml, never published, on the bundle's platforms only (exclude-jobs); the corefirst, the modules against it. Every staging lands as
<staging>-staging-<job>.assemble.yml: builds the installers (DEB, NSIS, productbuild) from those artifacts with no compiling, installseach as a user would and smoke-checks it (
tests/installed, C++ and the C binding).Usage example
Locally, from a filled store:
A layer from its sources, the rest prebuilt:
cmake --preset bundle-native -DFETCHLAYER_BUILD_OPCUAMODULES=ALWAYS.In CI, a layer at another commit: