Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
2 changes: 2 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[build]
rustflags = ["-D", "warnings"] # treat compiler warnings as errors
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 //...
101 changes: 101 additions & 0 deletions .github/workflows/cargo_required.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
# *******************************************************************************
# 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

# ---------- LOOM ----------
- name: Run Atomic tests with LOOM
if: github.event.pull_request.draft == false
run: |
set -o pipefail
cargo xtask build:loom
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