-
Notifications
You must be signed in to change notification settings - Fork 33
update modules to latest mains #31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
AlexanderLanin
merged 11 commits into
eclipse-score:main
from
etas-contrib:feature/build-from-all-mains
Nov 26, 2025
Merged
Changes from 9 commits
Commits
Show all changes
11 commits
Select commit
Hold shift + click to select a range
1a41ba3
update modules to latest mains
kgraeper a2c4655
make pyGithub optional
kgraeper 88491b6
add git token to the update
kgraeper 9f131e4
com has no score prefix on main, add wait_free_stack_fix
kgraeper d2093a2
display git hash in the summary
kgraeper 7f9011b
fix display
kgraeper 22dd5aa
add typing
kgraeper fb6535c
add capability to pin modules to branches
kgraeper 3fe1ddc
remove updated known-good
kgraeper 22fb1ec
revert score_module updates to 0.5
kgraeper 71a2d01
fix copilot findings
kgraeper File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
| Original file line number | Diff line number | Diff line change | ||||||
|---|---|---|---|---|---|---|---|---|
| @@ -1,24 +1,79 @@ | ||||||||
| #!/usr/bin/env bash | ||||||||
| set -euox pipefail | ||||||||
| set -euo pipefail | ||||||||
|
|
||||||||
| # Integration build script. | ||||||||
| # Captures warning counts for regression tracking. | ||||||||
| # | ||||||||
| # Usage: ./integration_test.sh [--known-good <path>] | ||||||||
| # --known-good: Optional path to known_good.json file | ||||||||
|
|
||||||||
| CONFIG=${CONFIG:-bl-x86_64-linux} | ||||||||
| LOG_DIR=${LOG_DIR:-_logs/logs} | ||||||||
| SUMMARY_FILE=${SUMMARY_FILE:-_logs/build_summary.md} | ||||||||
| mkdir -p "${LOG_DIR}" || true | ||||||||
| KNOWN_GOOD_FILE="" | ||||||||
|
|
||||||||
| # maybe move this to known_good.json or a config file later | ||||||||
| declare -A BUILD_TARGET_GROUPS=( | ||||||||
| [baselibs]="@score_baselibs//score/..." | ||||||||
| [score_baselibs]="@score_baselibs//score/..." | ||||||||
| [score_communication]="@score_communication//score/mw/com:com" | ||||||||
| [persistency]="@score_persistency//src/cpp/src/... @score_persistency//src/rust/..." | ||||||||
| [score_persistency]="@score_persistency//src/cpp/src/... @score_persistency//src/rust/..." | ||||||||
| #[score_logging]="@score_logging//src/..." | ||||||||
| [score_orchestrator]="@score_orchestrator//src/..." | ||||||||
| [score_test_scenarios]="@score_test_scenarios//..." | ||||||||
| [score_feo]="@score_feo//..." | ||||||||
| ) | ||||||||
|
|
||||||||
| # Parse command line arguments | ||||||||
| while [[ $# -gt 0 ]]; do | ||||||||
| case $1 in | ||||||||
| --known-good) | ||||||||
| KNOWN_GOOD_FILE="$2" | ||||||||
| shift 2 | ||||||||
| ;; | ||||||||
| *) | ||||||||
| echo "Unknown option: $1" | ||||||||
| echo "Usage: $0 [--known-good <path>]" | ||||||||
| exit 1 | ||||||||
| ;; | ||||||||
| esac | ||||||||
| done | ||||||||
|
|
||||||||
| mkdir -p "${LOG_DIR}" || true | ||||||||
|
|
||||||||
| # Function to extract commit hash from known_good.json | ||||||||
| get_commit_hash() { | ||||||||
| local module_name=$1 | ||||||||
| local known_good_file=$2 | ||||||||
|
|
||||||||
| if [[ -z "${known_good_file}" ]] || [[ ! -f "${known_good_file}" ]]; then | ||||||||
| echo "N/A" | ||||||||
| return | ||||||||
| fi | ||||||||
|
|
||||||||
| # Get the script directory | ||||||||
| local script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" | ||||||||
|
|
||||||||
| # Use the Python script to extract module info | ||||||||
| python3 "${script_dir}/tools/get_module_info.py" "${known_good_file}" "${module_name}" "hash" 2>/dev/null || echo "N/A" | ||||||||
| } | ||||||||
|
|
||||||||
| # Function to extract repo URL from known_good.json | ||||||||
| get_module_repo() { | ||||||||
| local module_name=$1 | ||||||||
| local known_good_file=$2 | ||||||||
|
|
||||||||
| if [[ -z "${known_good_file}" ]] || [[ ! -f "${known_good_file}" ]]; then | ||||||||
| echo "N/A" | ||||||||
| return | ||||||||
| fi | ||||||||
|
|
||||||||
| # Get the script directory | ||||||||
| local script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" | ||||||||
|
|
||||||||
| # Use the Python script to extract module repo | ||||||||
| python3 "${script_dir}/tools/get_module_info.py" "${known_good_file}" "${module_name}" "repo" 2>/dev/null || echo "N/A" | ||||||||
| } | ||||||||
|
|
||||||||
| warn_count() { | ||||||||
| # Grep typical compiler and Bazel warnings; adjust patterns as needed. | ||||||||
| local file=$1 | ||||||||
|
|
@@ -35,29 +90,41 @@ timestamp() { date '+%Y-%m-%d %H:%M:%S'; } | |||||||
|
|
||||||||
| echo "=== Integration Build Started $(timestamp) ===" | tee "${SUMMARY_FILE}" | ||||||||
| echo "Config: ${CONFIG}" | tee -a "${SUMMARY_FILE}" | ||||||||
| if [[ -n "${KNOWN_GOOD_FILE}" ]]; then | ||||||||
| echo "Known Good File: ${KNOWN_GOOD_FILE}" | tee -a "${SUMMARY_FILE}" | ||||||||
| fi | ||||||||
| echo "" >> "${SUMMARY_FILE}" | ||||||||
| echo "## Build Groups Summary" >> "${SUMMARY_FILE}" | ||||||||
| echo "" >> "${SUMMARY_FILE}" | ||||||||
| # Markdown table header | ||||||||
| { | ||||||||
| echo "| Group | Status | Duration (s) | Warnings | Deprecated refs |"; | ||||||||
| echo "|-------|--------|--------------|----------|-----------------|"; | ||||||||
| echo "| Group | Status | Duration (s) | Warnings | Deprecated refs | Commit/Version |"; | ||||||||
| echo "|-------|--------|--------------|----------|-----------------|----------------|"; | ||||||||
| } >> "${SUMMARY_FILE}" | ||||||||
|
|
||||||||
| overall_warn_total=0 | ||||||||
| overall_depr_total=0 | ||||||||
|
|
||||||||
| # Track if any build group failed | ||||||||
| any_failed=0 | ||||||||
|
|
||||||||
| for group in "${!BUILD_TARGET_GROUPS[@]}"; do | ||||||||
| targets="${BUILD_TARGET_GROUPS[$group]}" | ||||||||
| log_file="${LOG_DIR}/${group}.log" | ||||||||
|
|
||||||||
| # Log build group banner only to stdout/stderr (not into summary table file) | ||||||||
| echo "--- Building group: ${group} ---" | ||||||||
| start_ts=$(date +%s) | ||||||||
| echo "bazel build --config "${CONFIG}" ${targets} --verbose_failures" | ||||||||
| # GitHub Actions log grouping start | ||||||||
| echo "::group::Bazel build (${group})" | ||||||||
| start_ts=$(date +%s) | ||||||||
| set +e | ||||||||
| bazel build --config "${CONFIG}" ${targets} --verbose_failures 2>&1 | tee "$log_file" | ||||||||
| build_status=${PIPESTATUS[0]} | ||||||||
| # Track if any build group failed | ||||||||
| if [[ ${build_status} -ne 0 ]]; then | ||||||||
| any_failed=1 | ||||||||
| fi | ||||||||
| set -e | ||||||||
| echo "::endgroup::" # End Bazel build group | ||||||||
| end_ts=$(date +%s) | ||||||||
|
|
@@ -72,16 +139,36 @@ for group in "${!BUILD_TARGET_GROUPS[@]}"; do | |||||||
| else | ||||||||
| status_symbol="❌(${build_status})" | ||||||||
| fi | ||||||||
| echo "| ${group} | ${status_symbol} | ${duration} | ${w_count} | ${d_count} |" | tee -a "${SUMMARY_FILE}" | ||||||||
|
|
||||||||
| # Get commit hash/version for this group (group name is the module name) | ||||||||
| commit_hash=$(get_commit_hash "${group}" "${KNOWN_GOOD_FILE}") | ||||||||
| repo=$(get_module_repo "${group}" "${KNOWN_GOOD_FILE}") | ||||||||
|
|
||||||||
| # Truncate commit hash for display (first 8 chars) | ||||||||
| if [[ "${commit_hash}" != "N/A" ]] && [[ ${#commit_hash} -gt 8 ]]; then | ||||||||
| commit_hash_display="${commit_hash:0:8}" | ||||||||
| else | ||||||||
| commit_hash_display="${commit_hash}" | ||||||||
| fi | ||||||||
|
|
||||||||
| # Only add link if KNOWN_GOOD_FILE is set | ||||||||
| if [[ -n "${KNOWN_GOOD_FILE}" ]]; then | ||||||||
| commit_version_cell="[${commit_hash_display}](${repo}/tree/${commit_hash})" | ||||||||
| else | ||||||||
| commit_version_cell="${commit_hash_display}" | ||||||||
| fi | ||||||||
|
|
||||||||
| echo "| ${group} | ${status_symbol} | ${duration} | ${w_count} | ${d_count} | ${commit_version_cell} |" | tee -a "${SUMMARY_FILE}" | ||||||||
| done | ||||||||
|
|
||||||||
| # Append aggregate totals row to summary table | ||||||||
| echo "| TOTAL | | | ${overall_warn_total} | ${overall_depr_total} |" >> "${SUMMARY_FILE}" | ||||||||
|
|
||||||||
| # Display the full build summary explicitly at the end | ||||||||
| echo "| TOTAL | | | ${overall_warn_total} | ${overall_depr_total} | |" >> "${SUMMARY_FILE}"# Display the full build summary explicitly at the end | ||||||||
| echo '::group::Build Summary' | ||||||||
| echo '=== Build Summary (echo) ===' | ||||||||
| cat "${SUMMARY_FILE}" || echo "(Could not read summary file ${SUMMARY_FILE})" | ||||||||
| echo '::endgroup::' | ||||||||
|
|
||||||||
| exit 0 | ||||||||
| # Report to GitHub Actions if any build group failed | ||||||||
| if [[ ${any_failed} -eq 1 ]]; then | ||||||||
| echo "::error::One or more build groups failed. See summary above." | ||||||||
|
||||||||
| echo "::error::One or more build groups failed. See summary above." | |
| echo "::error::One or more build groups failed. See summary above." | |
| exit 1 |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,55 @@ | ||
| { | ||
| "timestamp": "2025-08-13T12:55:10Z", | ||
| "modules": { | ||
| "score_baselibs": { | ||
| "version": "0.1.3", | ||
| "repo": "https://github.com/eclipse-score/baselibs.git", | ||
| "branch": "s_core_release_v0_5_0" | ||
| }, | ||
| "score_communication": { | ||
| "version": "0.1.1", | ||
| "repo": "https://github.com/eclipse-score/communication.git", | ||
| "branch": "s_core_release_v0_5_0" | ||
| }, | ||
| "score_persistency": { | ||
| "version": "0.2.1", | ||
| "repo": "https://github.com/eclipse-score/persistency.git" | ||
| }, | ||
| "score_orchestrator": { | ||
| "version": "0.0.3", | ||
| "repo": "https://github.com/eclipse-score/orchestrator.git" | ||
| }, | ||
| "score_tooling": { | ||
| "version": "1.0.2", | ||
| "repo": "https://github.com/eclipse-score/tooling.git" | ||
| }, | ||
| "score_platform": { | ||
| "hash": "a9cf44be1342f3c62111de2249eb3132f5ab88da", | ||
| "repo": "https://github.com/eclipse-score/score.git" | ||
| }, | ||
| "score_bazel_platforms": { | ||
| "version": "0.0.2", | ||
| "repo": "https://github.com/eclipse-score/bazel_platforms.git" | ||
| }, | ||
| "score_test_scenarios": { | ||
| "version": "0.3.0", | ||
| "repo": "https://github.com/eclipse-score/testing_tools.git" | ||
| }, | ||
| "score_docs_as_code": { | ||
| "version": "2.0.1", | ||
| "repo": "https://github.com/eclipse-score/docs-as-code.git" | ||
| }, | ||
| "score_process": { | ||
| "version": "1.3.1", | ||
| "repo": "https://github.com/eclipse-score/process_description.git" | ||
| }, | ||
| "score_feo": { | ||
| "version": "1.0.2", | ||
| "repo": "https://github.com/eclipse-score/feo.git", | ||
| "branch": "candidate_v0.5" | ||
| } | ||
| }, | ||
| "manifest_sha256": "4c9b7f...", | ||
| "suite": "full", | ||
| "duration_s": 742 | ||
| } |
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing space before comment. Add a newline or space between the pipe symbol and the comment.