Skip to content
Open
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
15 changes: 8 additions & 7 deletions .github/workflows/build_and_test_autosd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,14 @@
# *******************************************************************************
name: AutoSD - Build & Integration Test
on:
pull_request:
types: [opened, reopened, synchronize]
merge_group:
types: [checks_requested]
push:
branches:
- main
workflow_dispatch:
# pull_request:
# 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 }}
Expand Down
15 changes: 8 additions & 7 deletions .github/workflows/build_and_test_ebclfsa.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,14 @@
# *******************************************************************************
name: EB corbos Linux for Safety Applications - Build & Integration Test
on:
pull_request:
types: [opened, reopened, synchronize]
merge_group:
types: [checks_requested]
push:
branches:
- main
workflow_dispatch:
# pull_request:
# 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 }}
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/build_and_test_linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@
name: Linux - Build & Integration Test
on:
workflow_dispatch:
pull_request:
release:
types: [created]
push:
branches:
- main
# pull_request:
# release:
# types: [created]
# push:
# branches:
# - main
# Do not flood CI with unneeded previous runs in PR
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
Expand Down
15 changes: 8 additions & 7 deletions .github/workflows/build_and_test_qnx.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,14 @@
# *******************************************************************************
name: QNX8 - Build & Integration Test
on:
pull_request_target:
types: [opened, reopened, synchronize]
merge_group:
types: [checks_requested]
push:
branches:
- main
workflow_dispatch:
# pull_request_target:
# 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 }}
Expand Down
28 changes: 28 additions & 0 deletions .github/workflows/nightly_integration.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# *******************************************************************************
# 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
# *******************************************************************************

# Nightly / manual integration tests: updates all modules to latest HEAD on their branch.

name: Integration Tests (Nightly)
on:
workflow_dispatch:
schedule:
- cron: '30 2 * * *' # Every night at 02:30 UTC on main-etas branch
jobs:
integration_test:
uses: ./.github/workflows/reusable_smoke-test.yml
secrets: inherit
with:
repo_runner_labels: 'standard'
update_to_latest: true
target_branch: '${{ github.ref }}'
185 changes: 185 additions & 0 deletions .github/workflows/reusable_smoke-test-bak.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
# *******************************************************************************
# 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
# *******************************************************************************
# Module Smoke Test Workflow
#
# Summary:
# Orchestrates a fast validation of a single module by producing an
# updated known_good.json (optionally overriding one module to the current PR)
# and then invoking the integration build workflow to compile and test.
#
# What it does:
# - Checks out the reference integration repository
# - Generates known_good.updated.json:
# * If testing an external module PR: overrides `module_name` to the PR SHA
# * If testing this repo: updates modules to latest branches
# - Uploads known_good.updated.json as an artifact
# - Calls the Module Integration Build workflow with a matrix of configs
# - Publishes a summary to the GitHub Step Summary
#
# Inputs:
# - repo_runner_labels (string, required, default: ubuntu-latest): Runner label.
# - module_name (string, required): Module to override (e.g., score_baselibs).
# - target_branch (string, required, default: main):
# The ref to checkout via actions/checkout — can be a branch name, tag, or
# commit SHA. This ensures the workflow uses the exact version of the
# integration files you intend.
#
# Repository Variables:
# - reference_integration_repo (optional): Repository providing integration
# workflows and tools (format: owner/repo). Supports private forks.
# Default: eclipse-score/reference_integration
#
# Secrets:
# - REPO_READ_TOKEN (optional): Token for reading private repos; falls back to
# github.token when not provided.
#
# Usage:
# This workflow is reusable and triggered via workflow_call from other workflows.
# Example:
# jobs:
# smoke:
# uses: eclipse-score/reference_integration/.github/workflows/module-smoke-test.yml@main
# with:
# repo_runner_labels: ubuntu-latest
# module_name: score_baselibs
# target_branch: main
# secrets:
# REPO_READ_TOKEN: ${{ secrets.REPO_READ_TOKEN }}
#
# Note: Set the 'reference_integration_repo' repository variable to use a
# private fork (e.g., my-org/reference_integration).
#
# Notes:
# - Extend the matrix in `integration-test` to cover additional configs.
name: Module Smoke Test
on:
workflow_call:
inputs:
repo_runner_labels:
description: 'The runner tag to use for the job'
required: true
type: string
default: 'ubuntu-latest'
module_name:
description: 'Name of the module to override (e.g., score_baselibs).'
required: true
type: string
target_branch:
description: 'Ref to checkout (branch, tag, or commit SHA).'
required: true
type: string
default: 'main'
secrets:
REPO_READ_TOKEN:
description: 'Token for reading repositories'
required: false
env:
REFERENCE_INTEGRATION_REPO: ${{ vars.reference_integration_repo != '' && vars.reference_integration_repo || 'eclipse-score/reference_integration' }}
jobs:
preparation:
name: Preparation
runs-on: ubuntu-latest
outputs:
known_good_updated: ${{ steps.set_known_good.outputs.known_good_updated }}
steps:
- name: Checkout repository
uses: actions/checkout@v4.2.2
with:
repository: ${{ env.REFERENCE_INTEGRATION_REPO }}
ref: ${{ inputs.target_branch }}
token: ${{ secrets.REPO_READ_TOKEN != '' && secrets.REPO_READ_TOKEN || github.token }}
- name: Create updated known_good.json with PR commit
id: set_known_good
run: |
if [ "${{ github.repository }}" != "${{ env.REFERENCE_INTEGRATION_REPO }}" ]; then
echo "Overriding ${{ inputs.module_name }} with current PR"
python3 scripts/known_good/override_known_good_repo.py \
--known known_good.json \
--output known_good.updated.json \
--module-override ${{ inputs.module_name }}@${{ github.event.repository.clone_url }}@${{ github.sha }}
else
echo "Testing reference integration repository itself - updating to latest commits"
echo "::group::get latest commits from module branches"
python3 scripts/known_good/update_module_latest.py --output known_good.updated.json
cat known_good.updated.json
echo "::endgroup::"
fi

# Output the content as a JSON string
echo "known_good_updated<<EOF" >> $GITHUB_OUTPUT
cat known_good.updated.json >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
env:
GITHUB_TOKEN: ${{ secrets.REPO_READ_TOKEN != '' && secrets.REPO_READ_TOKEN || github.token }}
- name: Show updated known_good.json
run: |
echo "Updated known_good.json:"
cat known_good.updated.json
- name: Upload updated known_good.json artifact
uses: actions/upload-artifact@v4
with:
name: known_good.updated.json
path: known_good.updated.json
docs:
name: Generate Documentation
runs-on: ubuntu-latest
needs: preparation
steps:
- name: not implemented
run: echo "Documentation generation not yet implemented here."
integration-test:
name: Integration Testing (${{ matrix.config }})
needs: preparation
strategy:
fail-fast: false
matrix:
config:
- x86_64-linux
# - arm64-linux
# Add more configs here as needed
# - arm64-qnx8_0
# - x86_64-qnx8_0
uses: ./.github/workflows/reusable_integration-build.yml
secrets: inherit
with:
known_good: ${{ needs.preparation.outputs.known_good_updated }}
config: ${{ matrix.config }}
repo_runner_labels: ${{ inputs.repo_runner_labels }}
target_branch: ${{ inputs.target_branch }}
summary:
name: Publish Summary
runs-on: ubuntu-latest
needs: [integration-test, docs]
if: always()
steps:
- name: Checkout repository
uses: actions/checkout@v4.2.2
with:
repository: ${{ env.REFERENCE_INTEGRATION_REPO }}
ref: ${{ inputs.target_branch }}
token: ${{ secrets.REPO_READ_TOKEN != '' && secrets.REPO_READ_TOKEN || github.token }}
# get all artefacts from integration-test job with name bazel-build-logs-*
- name: Download Integration Test Artifacts
uses: actions/download-artifact@v4
with:
pattern: bazel-build-logs-*
path: _logs/integration_test_logs
merge-multiple: true
- name: Publish Integration Test Summary
run: |
ls -l _logs/integration_test_logs || true
python3 scripts/publish_integration_summary.py \
--integration-result "${{ needs.integration-test.result }}" \
--docs-result "${{ needs.docs.result }}" \
--logs-dir "_logs/integration_test_logs" \
>> "$GITHUB_STEP_SUMMARY"
Loading
Loading