Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
fc6c3a7
Integrates datarouter in qemu reference_integration platform
rmaddikery Jan 22, 2026
448c212
Generate Workspace using Gita (#47)
opajonk Dec 22, 2025
9973f27
add logging to igate (#64)
antonkri Dec 22, 2025
4cf9c2c
add write permission (#68)
PiotrKorkus Dec 22, 2025
54f0d01
switched platform and referenced newest version (#65)
FScholPer Dec 22, 2025
c79c8de
Update EB corbos Linux for Safety Applications dependencies to 0.5.0-…
opajonk Dec 22, 2025
d5450be
Update README with OS Integration Details, exclude from main Bazel pr…
opajonk Dec 22, 2025
4c280a7
added release and push master trigger and missing workflow_dispatch (…
FScholPer Dec 23, 2025
2b5601c
Add test for feat_req__persistency__multiple_kvs (#73)
igorostrowskiq Jan 8, 2026
16190e2
fit: refactor (#74)
PiotrKorkus Jan 12, 2026
9066b4a
feat: reusable workflows for module integration testing (#75)
kgraeper Jan 16, 2026
ff55c9e
feat: replace bash integration test script with Python version (#77)
kgraeper Jan 19, 2026
139b254
update known_good to latest mains (#78)
kgraeper Jan 21, 2026
1d792ab
refactor: streamline disk space management in CI workflow (#76)
AlexanderLanin Jan 22, 2026
cd81377
update to latest score_bazel_cpp_toolchains (#80)
kgraeper Jan 26, 2026
4548024
chore: use devcontainer image v1.1.0 and fix ebclfsa workflow (#82)
lurtz Jan 29, 2026
06f4d41
Adding lifecycle to reference integraion (#84)
MaciejKaszynski Feb 4, 2026
99b05fb
Images as single module (#86)
pawelrutkaq Feb 10, 2026
5d9b822
make latest mains working for 0.6 (#87)
kgraeper Feb 10, 2026
edcecca
Integrate simple lifecycle examples (#89)
pawelrutkaq Feb 11, 2026
aae5781
Update patches for baselibs and remove deprecated feature flag (#95)
4og Feb 11, 2026
c7bee70
Revert "Update patches for baselibs and remove deprecated feature fla…
pawelrutkaq Feb 12, 2026
4d0fc7f
Fix pipeline so it can have access to secrets (#99)
pawelrutkaq Feb 12, 2026
df8924b
Autosd starter (#91)
odra Feb 12, 2026
3c1559a
Fix output dir for caching (#100)
pawelrutkaq Feb 12, 2026
34e1247
Add supervised rust example app to the lifecycle showcase (#97)
NicolasFussberger Feb 12, 2026
1040f9e
Quality checks & repository cleanup (#101)
pawelrutkaq Feb 17, 2026
0fe64e1
Align deps to use latest mains (#103)
pawelrutkaq Feb 18, 2026
3409280
fix paths in reusable workflow (#105)
PiotrKorkus Feb 18, 2026
b96b936
Use Kyron examples from module itself (#104)
pawelrutkaq Feb 18, 2026
05df027
Rust coverage (#106)
PiotrKorkus Feb 19, 2026
b53e8d6
fix multiple exclusions in rust_coverage (#110)
PiotrKorkus Feb 19, 2026
ded6226
fix showcases rpms + image building (#111)
odra Feb 19, 2026
0e0050c
Update EBcLfSA Integration (#112)
opajonk Feb 19, 2026
c529ff3
disable caching for unit tests (#113)
PiotrKorkus Feb 20, 2026
bf43bf4
build proper documentation (#115)
PiotrKorkus Feb 20, 2026
a8c5185
Bring back caching (#117)
pawelrutkaq Feb 20, 2026
409178f
new patch with unique name (#119)
PiotrKorkus Feb 20, 2026
286ff68
align main branch with v0.6 release (#154)
PiotrKorkus Feb 24, 2026
8b8110c
Find newest release notes (#156)
PiotrKorkus Feb 25, 2026
74d9e9c
Improve showcases (#159)
PiotrKorkus Feb 25, 2026
cbdb225
Bump ITF and adapt test cases (#158)
ltekieli Feb 26, 2026
c2a9843
Add test for docker (#161)
ltekieli Feb 26, 2026
23637b5
Run QNX ITF tests (#162)
ltekieli Feb 26, 2026
55d8776
Remove old test target (#164)
ltekieli Feb 27, 2026
004a565
Make parsing know_good.json be more verbose on errors (#160)
pawelrutkaq Feb 27, 2026
b8971b5
Basic repo setup: formatting, copyrights (#163)
PiotrKorkus Feb 27, 2026
c3a370c
bazel: update docs to remove patch (#167)
PiotrKorkus Mar 2, 2026
3332fcf
Use showcase from single place and adapt docker runner (#165)
pawelrutkaq Mar 3, 2026
5619421
Cancel heavy workflows on push to PR (#170)
pawelrutkaq Mar 4, 2026
442a6a5
Add initial code owners (#172)
pawelrutkaq Mar 4, 2026
7f513f3
locking: enforce Bzlmod lockfile consistency (#169)
dcalavrezo-qorix Mar 5, 2026
7a0db21
autosd cu use latest tag again (#173)
odra Mar 5, 2026
3ad5034
chore: extend codeowners list (#175)
AlexanderLanin Mar 6, 2026
c334383
Integrates datatrouter and adds integration test
rmaddikery Mar 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .bazelignore
Original file line number Diff line number Diff line change
@@ -1 +1 @@
qnx_qemu
build
116 changes: 67 additions & 49 deletions .bazelrc
Original file line number Diff line number Diff line change
@@ -1,70 +1,88 @@
# *******************************************************************************
# Copyright (c) 2025 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0
#
# SPDX-License-Identifier: Apache-2.0
# *******************************************************************************

common --registry=https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/
common --registry=https://bcr.bazel.build
common --credential_helper=*.qnx.com=%workspace%/.github/tools/qnx_credential_helper.py
common --credential_helper_timeout="60s"

# Java
build --java_language_version=17
build --tool_java_language_version=17
build --java_runtime_version=remotejdk_17
build --tool_java_runtime_version=remotejdk_17

# Flags needed by score_baselibs and communication modules.
# Do not add more!
build --@score_baselibs//score/mw/log/flags:KRemote_Logging=False
build --@score_baselibs//score/json:base_library=nlohmann
build --@score_communication//score/mw/com/flags:tracing_library=stub
build:_common --@score_baselibs//score/json:base_library=nlohmann
build:_common --@score_baselibs//score/memory/shared/flags:use_typedshmd=False
build:_common --@score_communication//score/mw/com/flags:tracing_library=stub
build:_common --cxxopt=-Wno-error=mismatched-new-delete
build:_common --host_platform=@score_bazel_platforms//:x86_64-linux-gcc_12.2.0-posix
build:_common --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_x86_64_unknown_linux_gnu
build:_common --extra_toolchains=@score_gcc_x86_64_toolchain//:x86_64-linux-gcc_12.2.0-posix

# stop legacy behavior of creating __init__.py files
build --incompatible_default_to_explicit_init_py
build --incompatible_strict_action_env
build --experimental_retain_test_configuration_across_testonly #https://github.com/bazelbuild/bazel/issues/6842
# Flags needed by datarouter
build:_common --@score_logging//score/datarouter/build_configuration_flags:persistent_logging=False
build:_common --@score_logging//score/datarouter/build_configuration_flags:persistent_config_feature_enabled=False
build:_common --@score_logging//score/datarouter/build_configuration_flags:enable_nonverbose_dlt=False
build:_common --@score_logging//score/datarouter/build_configuration_flags:enable_dynamic_configuration=False
build:_common --@score_logging//score/datarouter/build_configuration_flags:file_transfer=False
build:_common --@score_logging//score/datarouter/build_configuration_flags:use_local_vlan=True

test --test_tag_filters=-manual
test --test_output=errors
build:qnx-x86_64 --config=_common
build:qnx-x86_64 --noexperimental_merged_skyframe_analysis_execution
build:qnx-x86_64 --action_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1
build:qnx-x86_64 --incompatible_enable_cc_toolchain_resolution
build:qnx-x86_64 --incompatible_strict_action_env
build:qnx-x86_64 --sandbox_writable_path=/var/tmp
build:qnx-x86_64 --platforms=@score_bazel_platforms//:x86_64-qnx-sdp_8.0.0-posix
build:qnx-x86_64 --extra_toolchains=@score_qcc_x86_64_toolchain//:x86_64-qnx-sdp_8.0.0-posix
build:qnx-x86_64 --extra_toolchains=@toolchains_qnx_ifs//:ifs_x86_64
build:qnx-x86_64 --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_x86_64_pc_nto_qnx800

build:_bl_common --host_platform=@score_bazel_platforms//:x86_64-linux
build:linux-x86_64 --config=_common
build:linux-x86_64 --extra_toolchains=@score_gcc_x86_64_toolchain//:x86_64-linux-gcc_12.2.0-posix
build:linux-x86_64 --platforms=@score_bazel_platforms//:x86_64-linux-gcc_12.2.0-posix

# This config is for internal module usage ONLY.
build:bl-x86_64-linux --config=_bl_common
build:bl-x86_64-linux --platforms=@score_bazel_platforms//:x86_64-linux
build:bl-x86_64-linux --extra_toolchains=@gcc_toolchain//:host_gcc_12
build:eb-aarch64 --config=_common
build:eb-aarch64 --extra_toolchains=@gcc_toolchain//:aarch64_gcc_13
build:eb-aarch64 --platforms=@score_toolchains_gcc//platforms:aarch64-linux
build:eb-aarch64 --spawn_strategy=local

# This config is for internal module usage ONLY.
build:bl-x86_64-qnx --config=_bl_common
build:bl-x86_64-qnx --platforms=@score_bazel_platforms//:x86_64-qnx
build:bl-x86_64-qnx --extra_toolchains=@toolchains_qnx_qcc//:qcc_x86_64

# This config is for internal module usage ONLY.
build:bl-x86_64-linux-autosd --config=_bl_common
build:bl-x86_64-linux-autosd --define=score_sw_platform=autosd
build:bl-x86_64-linux-autosd --platforms=@score_bazel_platforms//:x86_64-linux
build:bl-x86_64-linux-autosd --extra_toolchains=@autosd_10_gcc_repo//:gcc_toolchain_linux_x86_64
build:bl-x86_64-linux-autosd --force_pic
build:autosd-x86_64 --config=_common
build:autosd-x86_64 --platforms=@score_bazel_platforms//:x86_64-linux
build:autosd-x86_64 --force_pic
build:autosd-x86_64 --extra_toolchains=@autosd_10_gcc_repo//:gcc_toolchain_linux_x86_64
build:autosd-x86_64 --extra_toolchains=@rules_rpm//toolchain:linux_x86_64

# This config is for internal module usage ONLY.
test:bl-x86_64-linux --config=_bl_common
test:bl-x86_64-linux --build_tests_only
test:bl-x86_64-linux --test_tag_filters=-manual
test:bl-x86_64-linux --test_output=errors
# Ferrocene Rust coverage config
build:ferrocene-coverage --@rules_rust//rust/settings:extra_rustc_flag=-Cinstrument-coverage
build:ferrocene-coverage --@rules_rust//rust/settings:extra_rustc_flag=-Clink-dead-code
build:ferrocene-coverage --@rules_rust//rust/settings:extra_rustc_flag=-Ccodegen-units=1
build:ferrocene-coverage --@rules_rust//rust/settings:extra_rustc_flag=-Cdebuginfo=2
build:ferrocene-coverage --@rules_rust//rust/settings:extra_exec_rustc_flag=-Cinstrument-coverage
build:ferrocene-coverage --@rules_rust//rust/settings:extra_exec_rustc_flag=-Clink-dead-code
build:ferrocene-coverage --@rules_rust//rust/settings:extra_exec_rustc_flag=-Ccodegen-units=1
build:ferrocene-coverage --@rules_rust//rust/settings:extra_exec_rustc_flag=-Cdebuginfo=2
test:ferrocene-coverage --run_under=@score_tooling//coverage:llvm_profile_wrapper

# Coverage needs to have all intermediate .rlibs to be able to proceed
build:ferrocene-coverage --remote_download_all

# config from communication .bazelrc file
# unshare /dev/shm and /tmp
test --sandbox_tmpfs_path=/dev/shm
test --sandbox_tmpfs_path=/tmp
# Output only failed test logs
test --test_output=errors

# Java
build --java_language_version=17
build --tool_java_language_version=17
build --java_runtime_version=remotejdk_17
build --tool_java_runtime_version=remotejdk_17
test:itf-qnx-x86_64 --config=qnx-x86_64
test:itf-qnx-x86_64 --run_under=@score_itf//scripts:run_under_qemu

test:unit-tests --config=linux-x86_64
test:unit-tests --build_tests_only
test:unit-tests --test_tag_filters=-manual

# Coverage configuration for C++
coverage --features=coverage
coverage --combined_report=lcov

# user specific overrides (like proxy settings)
try-import %workspace%/user.bazelrc
2 changes: 1 addition & 1 deletion .bazelversion
Original file line number Diff line number Diff line change
@@ -1 +1 @@
8.3.1
8.4.2
1 change: 1 addition & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"name": "eclipse-s-core",
"image": "ghcr.io/eclipse-score/devcontainer:v1.1.0",
"postCreateCommand": "bash .devcontainer/prepare_workspace.sh",
"postStartCommand": "ssh-keygen -f '/home/vscode/.ssh/known_hosts' -R '[localhost]:2222' || true"
}
22 changes: 22 additions & 0 deletions .devcontainer/prepare_workspace.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/bin/bash
set -euo pipefail

# Install pipx
sudo apt update
sudo apt install -y pipx

# Install gita
pipx install gita

# Enable bash autocompletion for gita
echo "eval \"\$(register-python-argcomplete gita -s bash)\"" >> ~/.bashrc

# Set GITA_PROJECT_HOME environment variable
echo "export GITA_PROJECT_HOME=$(pwd)/.gita" >> ~/.bashrc
GITA_PROJECT_HOME=$(pwd)/.gita
mkdir -p "$GITA_PROJECT_HOME"
export GITA_PROJECT_HOME

# Generate workspace metadata files from known_good.json:
# - .gita-workspace.csv
python3 scripts/known_good/known_good_to_workspace_metadata.py --known-good known_good.json --gita-workspace .gita-workspace.csv
16 changes: 16 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# 👋 Code owners help maintain this repository and keep it aligned with our technical vision.
# You're responsible for reviewing changes, ensuring quality, and guiding contributors.
# You're also encouraged to help triage issues and keep discussions constructive and focused.
# Ownership can be shared, delegated, or updated as the project evolves.

# For more information about CODEOWNERS, see:
# https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners


# This repository is maintained by the following individuals, who are responsible for reviewing and approving changes to the codebase:
# * @pawelrutkaq @PiotrKorkus @kgraeper
# Note: @kgraeper is currently mid-committer-election process, but is already actively maintaining this repository (in an unofficial capacity).

# However as this would create quite a bottleneck, we also want to cast a wider net and encourage the following individuals to also review and approve changes to the codebase.
# PLEASE LEAVE CRITICAL DECISIONS TO THE FIRST GROUP, BUT FEEL FREE TO APPROVE ANYTHING ELSE.
* @pawelrutkaq @PiotrKorkus @kgraeper @nradakovic @dcalavrezo-qorix @AlexanderLanin @MaximilianSoerenPollak @opajonk @lurtz @antonkri @FScholPer
18 changes: 16 additions & 2 deletions .github/codeql/codeql-config.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,21 @@
# *******************************************************************************
# Copyright (c) 2026 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0
#
# SPDX-License-Identifier: Apache-2.0
# *******************************************************************************
name: "Custom CodeQL Configuration for MISRA"

paths:
- repos
paths-ignore:
- "**/*test*"
- "**/*mock*"
- "**/test/**"
- "**/mock/**"
- "**/mock/**"
- "**/codeql-coding-standards-repo/**"
12 changes: 12 additions & 0 deletions .github/codeql/coding-standards.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
# *******************************************************************************
# Copyright (c) 2026 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0
#
# SPDX-License-Identifier: Apache-2.0
# *******************************************************************************
deviations: []
guideline-recategorizations: []
deviation-permits: []
6 changes: 2 additions & 4 deletions .github/tools/qnx_credential_helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,7 @@ def eprint(*args, **kwargs):
eprint("Failed getting credentials from .netrc")
sys.exit(1)

data = urllib.parse.urlencode(
{"userlogin": login, "password": password, "UseCookie": "1"}
)
data = urllib.parse.urlencode({"userlogin": login, "password": password, "UseCookie": "1"})
data = data.encode("ascii")

cookie_jar = http.cookiejar.CookieJar()
Expand All @@ -65,7 +63,7 @@ def eprint(*args, **kwargs):
sys.exit(1)

cookies = {c.name: c.value for c in list(cookie_jar)}
if not "myQNX" in cookies:
if "myQNX" not in cookies:
eprint("Failed to get myQNX cookie from login page")
sys.exit(1)

Expand Down
95 changes: 47 additions & 48 deletions .github/workflows/build_and_test_autosd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,94 +10,93 @@
#
# SPDX-License-Identifier: Apache-2.0
# *******************************************************************************

name: Build and Test AutoSD

name: AutoSD - Build & Integration Test
on:
pull_request:
paths:
- 'autosd/**'
workflow_dispatch:

types: [opened, reopened, synchronize]
merge_group:
types: [checks_requested]
push:
branches:
- main
# Do not flood CI with unneeded previous runs in PR
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
cancel-in-progress: ${{ github.ref_name != 'main' && !startsWith(github.ref_name, 'release/') }}
jobs:
build:
name: build-and-test-autosd
name: x86_64
runs-on: ubuntu-latest

env:
AIB_SCRIPT_URL: https://gitlab.com/CentOS/automotive/src/automotive-image-builder/-/raw/main/auto-image-builder.sh?ref_type=heads
AIB_CONTAINER_IMAGE: quay.io/centos-sig-automotive/automotive-image-builder:latest
steps:
- name: Clean disk space
uses: eclipse-score/more-disk-space@v1
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Bazel
uses: bazel-contrib/setup-bazel@0.9.1

uses: bazel-contrib/setup-bazel@0.18.0
with:
bazelisk-cache: true
disk-cache: ${{ github.workflow }}
repository-cache: true
cache-save: ${{ github.event_name == 'push' }}
- name: Install System Dependencies
run: |
sudo apt-get update -y
sudo apt-get install -y podman curl qemu-system createrepo-c

- name: Build Lola Demo
- name: Build Showcases
run: |
bazel build --config=bl-x86_64-linux-autosd //:lola-demo
working-directory: ./autosd

- name: Copy RPMs
bazel build --lockfile_mode=error --config autosd-x86_64 //images/autosd_x86_64:score-showcases
- name: Copy showcases folder
run: |
set -e
mkdir -p ./build/rpms
cp bazel-out/k8-fastbuild/bin/lola-demo-1.0.0-1.x86_64.rpm ./build/rpms
cp bazel-out/k8-fastbuild/bin/lola-demo-1.0.0-1.src.rpm ./build/rpms
createrepo_c ./build/rpms/
ls -l ./build/rpms/
working-directory: ./autosd

ls ./bazel-bin/showcases/showcases/showcases
cp -R ./bazel-bin/showcases/showcases/showcases ./images/autosd_x86_64/build/files/reference_integration/
- name: Install AIB Tools
run: |
curl -o auto-image-builder.sh "https://gitlab.com/lrossett/automotive-image-builder/-/raw/script-fix/auto-image-builder.sh?ref_type=heads"
curl -o auto-image-builder.sh "$AIB_SCRIPT_URL"
chmod +x auto-image-builder.sh
working-directory: ./images/autosd_x86_64/build
- name: Build AutoSD QEMU (x86_64)
run: |
export AIB_LOCAL_CONTAINER_STORAGE=$PWD/_build/containers-storage

curl -o automotive-image-runner "https://gitlab.com/CentOS/automotive/src/automotive-image-builder/-/raw/main/automotive-image-runner"
chmod +x automotive-image-runner
working-directory: ./autosd/build
mkdir -p _build/containers-storage
sudo -E ./auto-image-builder.sh -c $AIB_CONTAINER_IMAGE build-builder --distro=autosd10-sig

- name: Build lola-demo.aib.yml
run: |
sudo ./auto-image-builder.sh build-deprecated \
--distro autosd10 \
--mode package \
--target qemu \
--export qcow2 \
sudo -E ./auto-image-builder.sh -c $AIB_CONTAINER_IMAGE --verbose build \
--distro=autosd10-sig \
--target=qemu \
--define-file vars.yml \
--define-file vars-devel.yml \
image.aib.yml \
disk.qcow2
localhost/score:latest

sudo chown $(id -u) disk.qcow2
working-directory: ./autosd/build
sudo -E ./auto-image-builder.sh -c $AIB_CONTAINER_IMAGE --verbose to-disk-image localhost/score:latest _build/disk.qcow2

sudo chown $(id -u):$(id -u) _build/disk.qcow2
working-directory: ./images/autosd_x86_64/build
- name: Enable KVM group perms
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm

- name: Test QEMU image
run: |
sshcmd() {
sshpass -p "$SSH_PASSWORD" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p 2222 root@localhost $@
}

./scripts/run_qemu

sshcmd 'cat /etc/os-release'
sleep 10
sshcmd 'bluechictl start agent-qm lola-ipc-sub.service'
sleep 5
sshcmd '/usr/bin/lola-ipc-test'
working-directory: ./autosd/build
working-directory: ./images/autosd_x86_64/build
env:
SSH_PASSWORD: password

- name: Archive QEMU disk image
- name: Archive QEMU disk image (x86_64)
uses: actions/upload-artifact@v4
with:
name: autosd10-score-reference_integration-x86_64.qcow2
path: autosd/build/disk.qcow2
path: images/autosd_x86_64/build/_build/disk.qcow2
Loading
Loading