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
29 changes: 21 additions & 8 deletions .bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,31 @@ common --registry=https://raw.githubusercontent.com/eclipse-score/bazel_registry
common --registry=https://bcr.bazel.build
common --credential_helper=*.qnx.com=%workspace%/scripts/internal/qnx_creds.py

build:build_qnx8 --platforms=@score_bazel_platforms//:arm64-qnx8_0
build:build_qnx8 --extra_toolchains=@toolchains_qnx_qcc//:qcc_aarch64
build:build_qnx8 --extra_toolchains=@score_toolchains_rust//toolchains/aarch64-unknown-qnx8_0:toolchain_aarch64_qnx8_0
build:build_qnx8 --extra_toolchains=@score_toolchains_rust//toolchains/x86_64-unknown-linux-gnu:toolchain_x86_64_linux
build:build_qnx8 --extra_toolchains=@toolchains_qnx_ifs//:ifs_x86_64
build:build_qnx8 --extra_toolchains=@toolchains_qnx_ifs//:ifs_aarch64
# Ferrocene must be common compiler for HOST. To ensure metadata compatibility for proc macro crates!
build:_common --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_x86_64_unknown_linux_gnu

common --extra_toolchains=@gcc_toolchain//:host_gcc_12
build:arm64-qnx --config=_common
build:arm64-qnx --platforms=@score_bazel_platforms//:aarch64-qnx-sdp_8.0.0-posix
build:arm64-qnx --extra_toolchains=@score_qcc_aarch64_toolchain//:aarch64-qnx-sdp_8.0.0-posix
build:arm64-qnx --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_aarch64_unknown_nto_qnx800

build:x86_64-qnx --config=_common
build:x86_64-qnx --platforms=@score_bazel_platforms//:x86_64-qnx-sdp_8.0.0-posix
build:x86_64-qnx --extra_toolchains=@score_qcc_x86_64_toolchain//:x86_64-qnx-sdp_8.0.0-posix
build:x86_64-qnx --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_x86_64_pc_nto_qnx800

# TODO arm64 when rust support is there

build:x86_64-linux --config=_common
build:x86_64-linux --platforms=@score_bazel_platforms//:x86_64-linux-gcc_12.2.0-posix
build:x86_64-linux --extra_toolchains=@score_gcc_x86_64_toolchain//:x86_64-linux-gcc_12.2.0-posix
build:x86_64-linux --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_x86_64_unknown_linux_gnu

# to be removed
build:build_qnx8 --config=arm64-qnx

# Clippy linting (enabled by default)
build --aspects=@score_rust_policies//clippy:linters.bzl%clippy_strict
build --output_groups=+rules_lint_human
build:lint --@aspect_rules_lint//lint:fail_on_violation=true

build:lint --config=x86_64-linux
5 changes: 4 additions & 1 deletion .github/workflows/build_qnx8.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,12 @@ jobs:
permissions:
contents: read
pull-requests: read
strategy:
matrix:
config: ['arm64-qnx', 'x86_64-qnx']
with:
bazel-target: '//src/...'
bazel-config: 'build_qnx8'
bazel-config: ${{ matrix.config }}
credential-helper: 'scripts/internal/qnx_creds.py'
environment-name: 'workflow-approval'
secrets:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/clippy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,5 +25,5 @@ jobs:
bazel-clippy:
uses: eclipse-score/cicd-workflows/.github/workflows/static-analysis.yml@main
with:
bazel-targets: "//src/..."
bazel-config: "lint"
bazel-targets: '//src/...'
bazel-config: 'lint'
6 changes: 3 additions & 3 deletions .github/workflows/component_integration_tests_bazel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,16 +69,16 @@ jobs:

- name: Build Test Scenarios with Bazel
run: |
bazel build //tests/test_scenarios/rust:test_scenarios
bazel build --config x86_64-linux //tests/test_scenarios/rust:test_scenarios

- name: Build Test Scenarios with Bazel (PR)
if: github.event_name == 'pull_request' || github.event_name == 'push'
run: |
bazel test //tests/test_cases:cit
bazel test --config x86_64-linux //tests/test_cases:cit

- name: Build Test Scenarios with Bazel (Nightly)
if: github.event_name == 'schedule'
env:
NIGHTLY: TRUE
run: |
bazel test //tests/test_cases:cit_repeat --test_timeout=1200
bazel test --config x86_64-linux //tests/test_cases:cit_repeat --test_timeout=1200
2 changes: 1 addition & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,4 @@ jobs:
- name: Run Tests via Bazel
run: |
echo "Running: bazel test //src/..."
bazel test //src/...
bazel test --config x86_64-linux //src/...
84 changes: 45 additions & 39 deletions MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,12 @@ module(
# Bazel global rules
bazel_dep(name = "rules_python", version = "1.4.1")
bazel_dep(name = "bazel_skylib", version = "1.7.1")
bazel_dep(name = "rules_rust", version = "0.61.0")
bazel_dep(name = "rules_rust", version = "0.67.0")
git_override(
module_name = "rules_rust",
commit = "2b171a7376e69cb1207eced1f66904ce4ae0c819",
remote = "https://github.com/pawelrutkaq/rules_rust.git", # To be fixed once rule_rust is in score bazel registry
)

bazel_dep(name = "score_rust_policies", version = "0.0.4", dev_dependency = True)

Expand All @@ -29,7 +34,7 @@ bazel_dep(name = "buildifier_prebuilt", version = "7.3.1")
bazel_dep(name = "platforms", version = "1.0.0")

# S-CORE process rules
bazel_dep(name = "score_bazel_platforms", version = "0.0.3")
bazel_dep(name = "score_bazel_platforms", version = "0.0.4")
bazel_dep(name = "score_docs_as_code", version = "2.2.0")
bazel_dep(name = "score_tooling", version = "1.0.4")

Expand All @@ -38,38 +43,21 @@ bazel_dep(name = "score_platform", version = "0.4.2", dev_dependency = True) #
bazel_dep(name = "score_virtualization", version = "0.0.1", dev_dependency = True)

# Toolchains and extensions
bazel_dep(name = "score_toolchains_gcc", version = "0.5", dev_dependency = True)
bazel_dep(name = "score_toolchains_qnx", version = "0.0.6", dev_dependency = True)
bazel_dep(name = "rust_qnx8_toolchain", version = "1.2.0", dev_dependency = True)
bazel_dep(name = "score_toolchains_rust", version = "0.1.1", dev_dependency = True)
bazel_dep(name = "score_bazel_cpp_toolchains", version = "0.2.2", dev_dependency = True)
bazel_dep(name = "score_toolchains_rust", version = "0.4.0", dev_dependency = True)

# Others
bazel_dep(name = "custom_qemu", version = "1.0.0", dev_dependency = True)
bazel_dep(name = "score_test_scenarios", version = "0.3.1", dev_dependency = True)

bazel_dep(name = "googletest", version = "1.14.0")

# Overrides
git_override(
module_name = "score_toolchains_rust",
commit = "bcf8e5364f72cf136ec81960350a82e2b5c45449",
remote = "https://github.com/eclipse-score/toolchains_rust.git",
)

git_override(
module_name = "score_virtualization",
commit = "99d3f153c43796b67a63e82aad1ede6a881aa6af",
remote = "https://github.com/qorix-group/score_virtualization.git",
)

archive_override(
module_name = "rust_qnx8_toolchain",
strip_prefix = "qnx8",
urls = [
"https://github.com/qorix-group/rust-lang-qnx8/releases/download/1.2.0/qnx8_rust_toolchain.tar.gz",
],
)

archive_override(
module_name = "custom_qemu",
integrity = "sha256-3V2d+p7nP0tsbrVWOPYUSJogLNal43CIAHEto6Vjdfg=",
Expand All @@ -79,21 +67,43 @@ archive_override(
],
)

# Extensions

gcc = use_extension("@score_toolchains_gcc//extentions:gcc.bzl", "gcc", dev_dependency = True)
gcc = use_extension("@score_bazel_cpp_toolchains//extensions:gcc.bzl", "gcc", dev_dependency = True)
gcc.toolchain(
sha256 = "457f5f20f57528033cb840d708b507050d711ae93e009388847e113b11bf3600",
strip_prefix = "x86_64-unknown-linux-gnu",
url = "https://github.com/eclipse-score/toolchains_gcc_packages/releases/download/0.0.1/x86_64-unknown-linux-gnu_gcc12.tar.gz",
name = "score_gcc_x86_64_toolchain",
target_cpu = "x86_64",
target_os = "linux",
use_default_package = True,
version = "12.2.0",
)
use_repo(gcc, "gcc_toolchain", "gcc_toolchain_gcc")

toolchains_qnx = use_extension("@score_toolchains_qnx//:extensions.bzl", "toolchains_qnx", dev_dependency = True)
toolchains_qnx.sdp(
sha256 = "f2e0cb21c6baddbcb65f6a70610ce498e7685de8ea2e0f1648f01b327f6bac63",
strip_prefix = "installation",
url = "https://www.qnx.com/download/download/79858/installation.tgz",
gcc.toolchain(
name = "score_gcc_aarch64_toolchain",
target_cpu = "aarch64",
target_os = "linux",
use_default_package = True,
version = "12.2.0",
)
gcc.toolchain(
name = "score_qcc_x86_64_toolchain",
sdp_version = "8.0.0",
target_cpu = "x86_64",
target_os = "qnx",
use_default_package = True,
version = "12.2.0",
)
gcc.toolchain(
name = "score_qcc_aarch64_toolchain",
sdp_version = "8.0.0",
target_cpu = "aarch64",
target_os = "qnx",
use_default_package = True,
version = "12.2.0",
)
use_repo(
gcc,
"score_gcc_aarch64_toolchain",
"score_gcc_x86_64_toolchain",
"score_qcc_aarch64_toolchain",
"score_qcc_x86_64_toolchain",
)

PYTHON_VERSION = "3.12"
Expand All @@ -115,10 +125,6 @@ use_repo(python)

use_repo(pip, "pip_score_venv_test")

use_repo(toolchains_qnx, "toolchains_qnx_sdp")
use_repo(toolchains_qnx, "toolchains_qnx_qcc")
use_repo(toolchains_qnx, "toolchains_qnx_ifs")

# Module deps
bazel_dep(name = "score_crates", version = "0.0.5")
bazel_dep(name = "score_crates", version = "0.0.7")
bazel_dep(name = "score_kyron", version = "0.0.3")
Loading