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: 15 additions & 0 deletions .github/workflows/static-analysis-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ on:
- '**/*.cmake'
- '**/.clang-tidy'
- '.github/workflows/static-analysis-pr.yml'
- 'scripts/check_task_backend_apis.py'

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
Expand Down Expand Up @@ -162,3 +163,17 @@ jobs:
done

echo "No linter suppression markers found in changed files."
task-backend-api-check:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Check task backend API usage
env:
BASE_SHA: ${{ github.event.pull_request.base.sha }}
HEAD_SHA: ${{ github.sha }}
run: |
set -euo pipefail

python3 scripts/check_task_backend_apis.py --base "$BASE_SHA" --head "$HEAD_SHA"
17 changes: 10 additions & 7 deletions docs/locale/ru/LC_MESSAGES/user_guide/ci.po
Original file line number Diff line number Diff line change
Expand Up @@ -106,11 +106,12 @@ msgstr ""
#: ../../../../docs/user_guide/ci.rst:23
msgid ""
"Security and static analysis — clang‑tidy on PRs (avoid ``NOLINT``/``IWYU"
" pragma``), scheduled CodeQL (C++/Python) and OpenSSF Scorecard."
" pragma``), task backend API checks, scheduled CodeQL (C++/Python) and "
"OpenSSF Scorecard."
msgstr ""
"Безопасность и статический анализ — clang‑tidy в PR (избегайте "
"``NOLINT``/``IWYU pragma``), плановые CodeQL (C++/Python) и OpenSSF "
"Scorecard."
"``NOLINT``/``IWYU pragma``), проверки API для backend'ов задач, плановые "
"CodeQL (C++/Python) и OpenSSF Scorecard."

#: ../../../../docs/user_guide/ci.rst:26
msgid "Diagram"
Expand Down Expand Up @@ -259,11 +260,13 @@ msgstr ""

#: ../../../../docs/user_guide/ci.rst:89
msgid ""
"Static analysis (clang-tidy) fails: address comments; do not use "
"``NOLINT``/``IWYU pragma`` in task code."
"Static analysis fails: address clang-tidy comments; do not use "
"``NOLINT``/``IWYU pragma`` in task code; keep OpenMP/TBB/MPI/std::thread APIs "
"in their matching task backend directories."
msgstr ""
"Падает статический анализ (clang-tidy): поправьте замечания; не "
"используйте ``NOLINT``/``IWYU pragma`` в коде задач."
"Падает статический анализ: поправьте замечания clang-tidy; не используйте "
"``NOLINT``/``IWYU pragma`` в коде задач; держите API OpenMP/TBB/MPI/"
"std::thread в соответствующих backend-директориях задач."

#: ../../../../docs/user_guide/ci.rst:90
msgid ""
Expand Down
4 changes: 2 additions & 2 deletions docs/user_guide/ci.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ High‑level pipeline

- Pages (docs and scoreboard) — builds Doxygen XML and Sphinx (EN+RU) + scoreboard; on ``master`` deploys with coverage to GitHub Pages.

- Security and static analysis — clang‑tidy on PRs (avoid ``NOLINT``/``IWYU pragma``), scheduled CodeQL (C++/Python) and OpenSSF Scorecard.
- Security and static analysis — clang‑tidy on PRs (avoid ``NOLINT``/``IWYU pragma``), task backend API checks, scheduled CodeQL (C++/Python) and OpenSSF Scorecard.

Diagram
-------
Expand Down Expand Up @@ -86,7 +86,7 @@ Docs and scoreboard artifacts
Troubleshooting
---------------
- Pre-commit fails: run ``pre-commit run -a`` locally (install with ``pre-commit install``) and commit fixes.
- Static analysis (clang-tidy) fails: address comments; do not use ``NOLINT``/``IWYU pragma`` in task code.
- Static analysis fails: address clang-tidy comments; do not use ``NOLINT``/``IWYU pragma`` in task code; keep OpenMP/TBB/MPI/std::thread APIs in their matching task backend directories.
- Tests not found/not running: verify ``settings.json`` enables required technologies and tests exist; see :doc:`submit_work`.
- Time limits exceeded: reduce data sizes; prefer env vars (:doc:`environment_variables`) like ``PPC_TASK_MAX_TIME``/``PPC_PERF_MAX_TIME``; avoid sleeps/randomness.
- MPI runs fail locally: set ``PPC_NUM_PROC`` and try ``--additional-mpi-args=\"--oversubscribe\"``.
Expand Down
Loading
Loading