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
3 changes: 3 additions & 0 deletions .bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,6 @@ test --test_output=errors

common --registry=https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/
common --registry=https://bcr.bazel.build
common --credential_helper=*.qnx.com=%workspace%/scripts/internal/qnx_creds.py

build:build_qnx8 --platforms=@score_toolchains_rust//platforms:aarch64-unknown-qnx8_0
2 changes: 1 addition & 1 deletion .bazelversion
Original file line number Diff line number Diff line change
@@ -1 +1 @@
8.3.0
8.4.2
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: Bug report
about: Create a report for a bug
title: 'Bug: Your bug title'
labels: 'bug'
assignees: ''

---

### Describe the bug:
<!-- A clear and concise description of what the bug is. -->

### Steps to reproduce the behavior:
1.
2.

### Observed behavior:

### Expected behavior

### Occurrence:
<!-- Sporadic / Always -->

### Attachments / Logs:
2 changes: 1 addition & 1 deletion .github/actions/gitlint/action.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# *******************************************************************************
# Copyright (c) 2024 Contributors to the Eclipse Foundation
# Copyright (c) 2025 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
Expand Down
40 changes: 40 additions & 0 deletions .github/actions/setup-rust-build/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: 'Setup Rust Build Environment'
description: 'Checks out code, installs protoc, and caches cargo dependencies'

inputs:
repo-token:
description: 'GitHub token for protoc downloads'
required: true


runs:
using: "composite"
steps:
- name: Checkout Repository
uses: actions/checkout@v4

- name: Install protoc 26.1
uses: arduino/setup-protoc@v3
with:
version: 26.1
repo-token: ${{ inputs.repo-token }}

- name: Cache cargo & target
uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
target
~/.cargo/bin
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-
- name: Install cargo-tarpaulin if not already installed
run: |
if ! command -v cargo-tarpaulin > /dev/null; then
cargo install cargo-tarpaulin --version 0.32.7 --locked
else
echo "cargo-tarpaulin is already installed"
fi
shell: bash
33 changes: 33 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<!-- markdownlint-disable MD013 Line breaks on the bullet list lines are also present on the github renderer, therefore no line length limitation -->
<!-- markdownlint-disable MD041 On the github PR template we want to start with '## Headline' -->

## Notes for Reviewer
<!-- Items in addition to the checklist below that the reviewer should look for -->

## Pre-Review Checklist for the PR Author

* [ ] PR title is short, expressive and meaningful
* [ ] Commits are properly organized
* [ ] Relevant issues are linked in the [References](#references) section
* [ ] Tests are conducted
* [ ] Unit tests are added

## Checklist for the PR Reviewer

* [ ] Commits are properly organized and messages are according to the guideline
* [ ] Unit tests have been written for new behavior
* [ ] Public API is documented
* [ ] PR title describes the changes

## Post-review Checklist for the PR Author

* [ ] All open points are addressed and tracked via issues

## References

<!-- Use either 'Closes #123' or 'Relates to #123' to reference the corresponding issue. -->

Closes # <!-- Add issue number after '#' -->

<!-- markdownlint-enable MD041 -->
<!-- markdownlint-enable MD013 -->
52 changes: 52 additions & 0 deletions .github/setup-rust-build/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# *******************************************************************************
# 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: "Setup Rust Build Environment"
description: "Checks out code, installs protoc, and caches cargo dependencies"

inputs:
repo-token:
description: "GitHub token for protoc downloads"
required: true

runs:
using: "composite"
steps:
- name: Checkout Repository
uses: actions/checkout@v4

- name: Install protoc 26.1
uses: arduino/setup-protoc@v3
with:
version: 26.1
repo-token: ${{ inputs.repo-token }}

- name: Cache cargo & target
uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
target
~/.cargo/bin
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-
- name: Install cargo-tarpaulin if not already installed
run: |
if ! command -v cargo-tarpaulin > /dev/null; then
cargo install cargo-tarpaulin --version 0.32.7 --locked
else
echo "cargo-tarpaulin is already installed"
fi
shell: bash
71 changes: 71 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# *******************************************************************************
# 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: Bazel Build

on:
pull_request:
types: [opened, reopened, synchronize]
merge_group:
types: [checks_requested]

env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SCORE_QNX_USER: ${{ secrets.SCORE_QNX_USER }}
SCORE_QNX_PASSWORD: ${{ secrets.SCORE_QNX_PASSWORD }}
SCORE_QNX_LICENSE: ${{ secrets.SCORE_QNX_LICENSE }}
jobs:
build:
name: Build Bazel Code
runs-on: ${{ vars.REPO_RUNNER_LABELS && fromJSON(vars.REPO_RUNNER_LABELS) || 'ubuntu-latest' }}
steps:
- name: Checkout code
uses: actions/[email protected]

- name: Install protoc 26.1
uses: arduino/setup-protoc@v3
with:
version: 26.1
repo-token: ${{ secrets.GITHUB_TOKEN }}

- name: Setup Bazel
uses: bazel-contrib/[email protected]
with:
bazelisk-version: 1.26.0 # newest LTS before 1 Jun 2025
disk-cache: true
repository-cache: true
bazelisk-cache: true

- name: Bazel info (discover paths)
id: bazel-info
run: |
echo "BAZEL_OUTPUT_BASE=$(bazel info output_base)" >> $GITHUB_ENV
echo "BAZEL_USER_ROOT=$(bazel info output_user_root)" >> $GITHUB_ENV
echo "BAZEL_REPO_CACHE=$(bazel info repository_cache)" >> $GITHUB_ENV
bazel info

- name: Cache Bazel output base
uses: actions/cache@v4
with:
path: |
${{ env.BAZEL_OUTPUT_BASE }}/action_cache
${{ env.BAZEL_OUTPUT_BASE }}/bazel-out
${{ env.BAZEL_OUTPUT_BASE }}/external
${{ env.BAZEL_OUTPUT_BASE }}/execroot
key: bazel-ob-v2-${{ runner.os }}-${{ hashFiles('.bazelversion', 'MODULE.bazel', 'MODULE.bazel.lock', '**/*.bzl', 'Cargo.lock') }}
restore-keys: |
bazel-ob-v2-${{ runner.os }}-

- name: Build with Bazel
run: |
bazel build //...
94 changes: 94 additions & 0 deletions .github/workflows/cargo_required.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# *******************************************************************************
# 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: cargo build, test, coverage and miri report

on:
push:
branches: [main, development]
pull_request:
branches: [main, development]
types: [opened, ready_for_review, reopened, synchronize]

env:
CARGO_TERM_COLOR: always
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

jobs:
cargo-checks:
#permissions for docs deployment
permissions:
contents: write
pages: write
id-token: write
runs-on: ${{ vars.REPO_RUNNER_LABELS && fromJSON(vars.REPO_RUNNER_LABELS) || 'ubuntu-latest' }}
timeout-minutes: 45 # minutes is the maximum allowed for a cold run
steps:
- name: Checkout Repository
uses: actions/checkout@v4

- name: Setup Rust Build Environment
uses: ./.github/actions/setup-rust-build
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}

# ---------- BUILD ----------
- name: Cargo build
run: cargo build --verbose

# ---------- TARPAULIN(TEST + COVERAGE) ----------
- name: Run tests under coverage
run: cargo +nightly tarpaulin --version 0.32.7 --skip-clean --out Html --verbose --no-dead-code --engine llvm --all-features

- name: Upload coverage report
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: tarpaulin-report.html

# ---------- MIRI ----------
- name: Install nightly + miri (minimal profile)
uses: actions-rs/toolchain@v1
if: github.event.pull_request.draft == false
with:
toolchain: nightly-2025-05-30
profile: minimal
components: miri
override: true

- name: Prefetch crates for nightly
if: github.event.pull_request.draft == false
run: cargo +nightly-2025-05-30 fetch --locked

- name: Purge Miri artifacts
if: github.event.pull_request.draft == false
run: |
rm -rf target/miri
rm -rf ~/.cache/miri

- name: Prefetch and build dependencies for Miri
if: github.event.pull_request.draft == false
run: cargo +nightly-2025-05-30 miri setup

- name: Run Miri and save report
if: github.event.pull_request.draft == false
env:
CARGO_INCREMENTAL: "0" # turn off incremental
run: |
set -o pipefail
cargo +nightly-2025-05-30 miri test --workspace \
-- --skip test_mt_one_pop_one_stealer \
--skip test_mt_one_push_mpmc_one_stealer \
--skip test_one_producer_multi_stealer_mt_thread \
--skip test_one_producer_one_stealer_mt_thread \
2>&1 | tee miri_report.txt
5 changes: 4 additions & 1 deletion .github/workflows/copyright.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# *******************************************************************************
# Copyright (c) 2024 Contributors to the Eclipse Foundation
# Copyright (c) 2025 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
Expand All @@ -17,6 +17,9 @@ on:
types: [opened, reopened, synchronize]
merge_group:
types: [checks_requested]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

jobs:
copyright-check:
uses: eclipse-score/cicd-workflows/.github/workflows/copyright.yml@main
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docs-cleanup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ permissions:

on:
schedule:
- cron: '0 0 * * *' # Runs every day at midnight UTC
- cron: "0 0 * * *" # Runs every day at midnight UTC

jobs:
docs-cleanup:
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/format.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# *******************************************************************************
# Copyright (c) 2024 Contributors to the Eclipse Foundation
# Copyright (c) 2025 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
Expand All @@ -18,7 +18,8 @@ on:
types: [opened, reopened, synchronize]
merge_group:
types: [checks_requested]

env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs:
formatting-check:
uses: eclipse-score/cicd-workflows/.github/workflows/format.yml@main
Expand Down
Loading
Loading