Repository navigation
Conversation
antonkri
requested review from
AlexanderLanin,
FScholPer,
MaximilianSoerenPollak,
PiotrKorkus,
dcalavrezo-qorix,
lurtz,
nradakovic,
opajonk and
pawelrutkaq
as code owners
October 14, 2026 10:39
antonkri
marked this pull request as draft
October 14, 2026 10:39
|
The created documentation from the pull request is available at: docu-html |
Image content is now split into three layers: the image itself (//images/<variant>), the deployed S-CORE platform (//deploy) and the showcases that demonstrate and verify it (//showcases). Before this change the two upper layers were mixed in both directions: the lifecycle showcase shipped the launch_manager and the standalone showcase shipped the config_daemon, while the persistency test scenarios binary was packaged with the platform applications. A showcase that ships the component it exercises verifies the binary it brought along instead of the one the distribution deployed, so a distribution failing to deploy an S-CORE module would still pass. - Add //deploy with one package per module (lifecycle, logging, communication, config_management) and the aggregate :platform_bundle / :platform_tar that every image consumes. - Move launch_manager and config_daemon from the showcases into //deploy; the showcase manifests now drive the deployed binaries. - Move the persistency test scenarios binary from the platform packaging into //showcases. - Fold images/common/apps into //deploy and point all images at the single platform bundle. - Document the layering and the layer 2 / layer 3 contract in deploy/README.md and in the platform integration guide.
The datarouter and mw::com configuration files lived under feature_integration_tests/configs/ but were never read by the feature integration tests. Their only consumers are the deployment packages and the ebclfsa image, so they belong next to the module they configure. Files move unchanged; the packaged paths stay /usr/bin/datarouter/etc/* and /etc/*. What remains in feature_integration_tests/configs is the test harness configuration (dlt_config_*, qemu_bridge_config).
Use score_pkg_bundle instead of a hand-written pkg_files. An alias keeps the installed binary name bin/cpp_tests_persistency, since score_pkg_bundle names binaries after their label.
antonkri
force-pushed
the
refactor/deployment-layering
branch
from
October 15, 2026 13:41
6fcf940 to
35929a6
Compare
The showcases are shipped in the QNX image, but only the ITF suite ran there, so none of them was ever executed on QNX. Run //platform_integration_tests:pit against the same QEMU image.
antonkri
force-pushed
the
refactor/deployment-layering
branch
from
October 15, 2026 14:07
35929a6 to
6c7ff63
Compare
Contributor
|
What exact problme dow e solve since I am not sure before looking int oit |
Contributor
Author
Hello @pawelrutkaq ,
|
Contributor
|
ok i will look |
deploy/communication shipped /etc/mw_com_config.json and /etc/logging.json, a leftover of the scrample demo (service /score/MapApiLanesStamped, appId IPBR). Nothing reads them: mw::com has no system-wide configuration (it reads ./etc/mw_com_config.json relative to the working directory or the file passed with -s), mw::log's only system-wide file is /etc/ecu_logging_config.json, and every showcase brings its own configuration. Communication ships as a library, so it has nothing to deploy. Drops the package from //deploy:platform_bundle and from the EB corbos image genrule (where it was a dependency only, never passed to build_image.sh), and corrects the layer 2 / layer 3 contract in deploy/README.md.
Communication and baselibs ship as libraries, so the platform had nothing a layer 3 check could exercise for them. The platform now deploys a small mw::com service built on both (//deploy/communication), and the communication showcase gains a consumer that brings no provider of its own. The service score/platform/heartbeat offers - the heartbeat event: a sequence number and payload sealed with a baselibs CRC32, published every 100 ms, and - the platform_info field: the known_good.json timestamp and the version (or pinned commit) of every target_sw module, generated at build time from //:known_good.json. heartbeat_consumer exits 0 only if it finds the deployed service via service discovery, receives platform_info with an intact CRC32, the platform reports the S-CORE version the consumer was built for (differences are listed per module), and it receives 10 intact heartbeats. The showcase CLI ignores app exit codes, so the platform integration test checks the consumer's output. The reported version is self-declared: it catches a wrongly assembled platform but is no proof of origin. deploy/communication/README.md describes the service, the consumer and these limitations.
Includes //deploy:platform_tar in the AutoSD image, which so far only took
the showcases. Since the launch manager, config daemon and heartbeat service
moved into //deploy, the AutoSD showcases could not find the binaries they
drive ("config_daemon: No such file or directory").
On a release, the Linux, QNX and EB corbos workflows now attach two archives
per target: score-platform-<target>.tar.gz (//deploy:platform_tar, layer 2)
and score-showcases-<target>.tar.gz (//showcases:showcases_pkg_tar,
layer 3). An image that claims to ship S-CORE can then be checked by copying
only the showcases archive onto it. deploy/README.md lists the assets and
how to use them.
Extends the release job from #413: the build job packages //deploy:platform_tar and //showcases:showcases_pkg_tar for AutoSD, and the release job uploads them next to the qcow2 image. GH_REPO is set because the release job has no checkout to infer the repository from.
This branch has not been deployed
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.
Image content is now split into three layers: the image itself (//images/), the deployed S-CORE platform (//deploy) and the showcases that demonstrate and verify it (//showcases).
Before this change the two upper layers were mixed in both directions: the lifecycle showcase shipped the launch_manager and the standalone showcase shipped the config_daemon, while the persistency test scenarios binary was packaged with the platform applications. A showcase that ships the component it exercises verifies the binary it brought along instead of the one the distribution deployed, so a distribution failing to deploy an S-CORE module would still pass.
Communication and baselibs: platform heartbeat service
Communication and baselibs ship as libraries, so there was nothing a layer 3 check could exercise for them. //deploy/communication now deploys
heartbeat_service, an mw::com service (score/platform/heartbeat) built on both:heartbeatevent: sequence number and payload sealed with a baselibs CRC32, every 100 ms.platform_infofield: theknown_good.jsontimestamp and the version (or pinned commit) of everytarget_swmodule, generated at build time.The new showcase
Communication Platform Heartbeatrunsheartbeat_consumer, which brings no provider of its own. It passes only if it finds the deployed service via service discovery, the platform reports the S-CORE version the consumer was built for, and it receives 10 intact heartbeats. The reported version is self-declared: it catches a wrongly assembled platform but is no proof of origin. Details in deploy/communication/README.md.Release downloads per layer
On a release, the Linux, AutoSD, QNX and EB corbos workflows attach two archives per target:
score-platform-<target>.tar.gz(layer 2) andscore-showcases-<target>.tar.gz(layer 3). An image that claims to ship S-CORE can be checked by copying only the showcases archive onto it. See "Release downloads" in deploy/README.md.CI
pull_request_target, this step and the release packaging only take effect after merge.