Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
43 changes: 21 additions & 22 deletions .github/workflows/build_and_test_autosd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,23 +11,22 @@
# SPDX-License-Identifier: Apache-2.0
# *******************************************************************************

name: Build and Test AutoSD
name: AutoSD - Build & Test

on:
pull_request:
types: [opened, reopened, synchronize]
paths:
- 'autosd/**'
push:
branches:
- main
release:
types: [created]
workflow_dispatch:
- 'integration/**'
merge_group:
types: [checks_requested]
paths:
- 'integration/**'


jobs:
build:
name: build-and-test-autosd
name: x86_64
runs-on: ubuntu-latest

steps:
Expand All @@ -44,18 +43,18 @@ jobs:

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

- name: Copy RPMs
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
mkdir -p ./images/autosd_x86_64/build/rpms
cp bazel-out/k8-fastbuild/bin/images/autosd_x86_64/lola-demo-1.0.0-1.x86_64.rpm ./images/autosd_x86_64/build/rpms
cp bazel-out/k8-fastbuild/bin/images/autosd_x86_64/lola-demo-1.0.0-1.src.rpm ./images/autosd_x86_64/build/rpms
createrepo_c ./images/autosd_x86_64/build/rpms/
ls -l ./images/autosd_x86_64/build/rpms/
working-directory: ./integration

- name: Install AIB Tools
run: |
Expand All @@ -64,7 +63,7 @@ jobs:

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
working-directory: ./integration/images/autosd_x86_64/build

- name: Build lola-demo.aib.yml
run: |
Expand All @@ -79,7 +78,7 @@ jobs:
disk.qcow2

sudo chown $(id -u) disk.qcow2
working-directory: ./autosd/build
working-directory: ./integration/images/autosd_x86_64/build

- name: Enable KVM group perms
run: |
Expand All @@ -97,13 +96,13 @@ jobs:
sleep 10
sshcmd 'bluechictl start agent-qm lola-ipc-sub.service'
sleep 5
sshcmd '/usr/bin/lola-ipc-test'
working-directory: ./autosd/build
# sshcmd '/usr/bin/lola-ipc-test' Disabled until correct exmaples deployed
working-directory: ./integration/images/autosd_x86_64/build
env:
SSH_PASSWORD: password

- name: Archive QEMU disk image
uses: actions/upload-artifact@v4
with:
name: autosd10-score-reference_integration-x86_64.qcow2
path: autosd/build/disk.qcow2
path: integration/images/autosd_x86_64/build/disk.qcow2
24 changes: 10 additions & 14 deletions .github/workflows/build_and_test_ebclfsa.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,23 +11,21 @@
# SPDX-License-Identifier: Apache-2.0
# *******************************************************************************

name: Build for and Test on EB corbos Linux for Safety Applications
name: EB Corbos Linux for Safety Applications - Build & Test

on:
pull_request:
types: [opened, reopened, synchronize]
paths:
- "ebclfsa/**"
- ".github/workflows/build_and_test_ebclfsa.yml"
push:
branches:
- main
release:
types: [created]
workflow_dispatch:
- 'integration/**'
merge_group:
types: [checks_requested]
paths:
- 'integration/**'

jobs:
build:
name: build-and-test-ebclfsa
name: aarch64
runs-on: ubuntu-latest
container:
image: ghcr.io/eclipse-score/devcontainer:v1.1.0
Expand All @@ -38,14 +36,12 @@ jobs:

- name: Build for EB corbos Linux for Safety Applications and run tests
run: |
bazel build --config=aarch64-ebclfsa //scrample_integration:run
bazel build --config=aarch64-ebclfsa //persistency_integration:run
working-directory: ./ebclfsa
bazel build --config=eb-aarch64 //images/ebclfsa_aarch64/scrample_integration:run
working-directory: ./integration

- name: Upload test logs
uses: actions/upload-artifact@v5
with:
name: test-logs
path: |
ebclfsa/bazel-bin/scrample_integration/*.log
ebclfsa/bazel-bin/persistency_integration/*.log
56 changes: 0 additions & 56 deletions .github/workflows/build_and_test_on_every_pr.yml

This file was deleted.

69 changes: 69 additions & 0 deletions .github/workflows/build_and_test_qnx.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# *******************************************************************************
# 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
# *******************************************************************************

name: QNX8 - Build & Test
on:
pull_request:
types: [opened, reopened, synchronize]
paths:
- 'integration/**'
merge_group:
types: [checks_requested]
paths:
- 'integration/**'

jobs:
qnx-build-x86_64:
name: x86_64
runs-on: ${{ vars.REPO_RUNNER_LABELS && fromJSON(vars.REPO_RUNNER_LABELS) || 'ubuntu-latest' }}
environment: ${{ inputs.environment-name }}
permissions:
contents: read
pull-requests: read

steps:
- name: Checkout repository (Handle all events)
uses: actions/checkout@v4.2.2
with:
ref: ${{ github.head_ref || github.event.pull_request.head.ref || github.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name || github.repository }}

- name: Setup Bazel with shared caching
uses: bazel-contrib/setup-bazel@0.18.0
with:
disk-cache: ${{ inputs.bazel-disk-cache }}
repository-cache: true
bazelisk-cache: true
cache-save: ${{ github.event_name == 'push' }}

- name: Prepare QNX license
env:
SCORE_QNX_LICENSE: ${{ secrets.SCORE_QNX_LICENSE }}
run: |
set -euo pipefail

LICENSE_DIR="/opt/score_qnx/license"
sudo mkdir -p "${LICENSE_DIR}"
echo "${SCORE_QNX_LICENSE}" | base64 --decode | sudo tee "${LICENSE_DIR}/licenses" >/dev/null

- name: Build with QNX toolchain
env:
SCORE_QNX_USER: ${{ secrets.SCORE_QNX_USER }}
SCORE_QNX_PASSWORD: ${{ secrets.SCORE_QNX_PASSWORD }}
run: |
bazel build --config qnx-x86_64 //images/qnx_x86_64:image
working-directory: ./integration

- name: Cleanup QNX license
if: always()
run: sudo rm -rf /opt/score_qnx
1 change: 1 addition & 0 deletions .github/workflows/test_integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ on:
# - cron: '30 2 * * *' # Every night at 02:30 UTC on main branch
jobs:
integration_test:
if: false # Disable job as now latest greatest main loop does not work
uses: ./.github/workflows/reusable_smoke-test.yml
secrets: inherit
with:
Expand Down
9 changes: 0 additions & 9 deletions MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -33,15 +33,6 @@ python.toolchain(
)
use_repo(python)

pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip", dev_dependency = True)
pip.parse(
hub_name = "pip_score_venv_test",
python_version = PYTHON_VERSION,
requirements_lock = "//feature_integration_tests/test_cases:requirements.txt.lock",
)

use_repo(pip, "pip_score_venv_test")

# Special imports for certain modules

# communication module dependencies
Expand Down
37 changes: 37 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,43 @@ The reference integration workspace serves as a single Bazel build environment t
- Test toolchain and platform support (Linux, QNX, LLVM/GCC)
- Prepare for release validation workflows


## Structure of integration folder

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please also mention
integration/README.md
here

Intention for each folder is described below

### bazel_common
Used to keep a common bazel functionalities for `images` like:
- toolchain setups
- common tooling deps
- common S-CORE modules deps
- common `.bzl` extensions needed to streamline images


### showcases
Used to keep `S-CORE` wide **showcases** implementation to showcase S-CORE in certain deployments (images). Contains:
- proxy target bundling all `standalone` examples from all `S-CORE` repos to deploy then as single bazel target into image
- implementation of certain **showcases** that shall be deployed into images

#### cli

Contains a CLI tool to be used on runner that is showcasing the S-CORE functionality. It will provide superior user experience and will guide user to run examples.
How to use it in Your image, look [here](./integration/showcases/cli/README.md)

### images
Used to keep concrete `images` for given target platform as bazel modules. Each platform shall have it's own folder with name `{platform}_{arch}` ie. `qnx_aarch64`.

This `images` shall:
- deploy all `showcases` into image so they can be run inside
- other specific code for given `image`

### runners
Used to keep thin logic ro reuse `runners` between images, like docker runner etc.





## Docs

To generate a full documentation of all integrated modules, run:
Expand Down
Loading
Loading