Skip to content

Commit cd1df3b

Browse files
committed
ci: split monolithic CI into individual workflows and fix source issues
- Rename .github/workflows/ci.yml to cmake.yml (CMake jobs only) - Add .github/workflows/bazel.yml with all Bazel jobs: AlmaLinux, Alpine Linux (musl, --config=alpine), Arch Linux, Fedora, openSUSE, Ubuntu (amd64 and arm64), macOS (arm64 and x86_64), and Windows (amd64 and arm64) - Add individual workflow files: actionlint, buildifier, check-jsonschema, clang-format, clang-tidy, codespell, coverage, cppcheck, cpplint, detect-secrets, docker, gersemi, hadolint, iwyu, lizard, markdownlint, reuse, sanitizer, valgrind, validate-cff, and yamllint - Add amd64 and arm64 matrix jobs (ubuntu-latest / ubuntu-24.04-arm) to coverage, docker, sanitizer, and valgrind workflows; restrict DeepSource upload to amd64 and scope Docker GHA cache by arch - Fix line length violations (> 80 chars) in examples/Roadmap.cc (cpplint) - Fix missing closing quote in codespell.yml add-matcher echo command - Replace unsupported glob cmake-build-*/ in .bazelignore with explicit directory entries (Bazel rejects wildcard paths) - Update QUALITY_DECLARATION.md to reflect new CI structure, per-workflow platform coverage, and amd64/arm64 matrix in dynamic analysis workflows Signed-off-by: Jamie Snape <snape@me.com>
1 parent b577921 commit cd1df3b

78 files changed

Lines changed: 3941 additions & 740 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.bazelignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ _build/
3838
.github/
3939
.idea/
4040
.reuse/
41+
.venv/
4142
cmake-build-debug/
4243
cmake-build-default/
4344
cmake-build-minsizerel/

.buildifier.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"type": "auto",
3-
"mode": "fix",
4-
"lint": "fix",
3+
"mode": "check",
4+
"lint": "warn",
55
"warningsList": [
66
"all"
77
]

.clang-tidy

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,15 @@ Checks: >
5454
-cert-msc50-cpp,
5555
-cert-msc51-cpp,
5656
-clang-analyzer-security.insecureAPI.rand,
57+
-cppcoreguidelines-avoid-do-while,
5758
-cppcoreguidelines-avoid-magic-numbers,
59+
-misc-include-cleaner,
5860
-misc-no-recursion,
5961
-readability-function-cognitive-complexity,
6062
-readability-identifier-length,
61-
-readability-magic-numbers
63+
-readability-magic-numbers,
64+
-readability-math-missing-parentheses
65+
6266
6367
CheckOptions:
6468
- key: misc-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic

.cppcheck-suppressions.xml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
.cppcheck-suppressions.xml
4+
RVO2 Library
5+
6+
SPDX-FileCopyrightText: 2008 University of North Carolina at Chapel Hill
7+
SPDX-License-Identifier: Apache-2.0
8+
9+
Licensed under the Apache License, Version 2.0 (the "License");
10+
you may not use this file except in compliance with the License.
11+
You may obtain a copy of the License at
12+
13+
https://www.apache.org/licenses/LICENSE-2.0
14+
15+
Unless required by applicable law or agreed to in writing, software
16+
distributed under the License is distributed on an "AS IS" BASIS,
17+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18+
See the License for the specific language governing permissions and
19+
limitations under the License.
20+
21+
Please send all bug reports to <geom@cs.unc.edu>.
22+
23+
The authors may be contacted via:
24+
25+
Jur van den Berg, Stephen J. Guy, Jamie Snape, Ming C. Lin, Dinesh Manocha
26+
Dept. of Computer Science
27+
201 S. Columbia St.
28+
Frederick P. Brooks, Jr. Computer Science Bldg.
29+
Chapel Hill, N.C. 27599-3175
30+
United States of America
31+
32+
<https://gamma.cs.unc.edu/RVO2/>
33+
-->
34+
<suppressions>
35+
<suppress>
36+
<id>missingInclude</id>
37+
</suppress>
38+
<suppress>
39+
<id>missingIncludeSystem</id>
40+
</suppress>
41+
<suppress>
42+
<id>unmatchedSuppression</id>
43+
</suppress>
44+
<suppress>
45+
<id>unusedFunction</id>
46+
</suppress>
47+
<suppress>
48+
<id>unusedStructMember</id>
49+
</suppress>
50+
</suppressions>

.deepsource.toml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#
2+
# .deepsource.toml
3+
# RVO2 Library
4+
#
5+
# SPDX-FileCopyrightText: 2008 University of North Carolina at Chapel Hill
6+
# SPDX-License-Identifier: Apache-2.0
7+
#
8+
# Licensed under the Apache License, Version 2.0 (the "License");
9+
# you may not use this file except in compliance with the License.
10+
# You may obtain a copy of the License at
11+
#
12+
# https://www.apache.org/licenses/LICENSE-2.0
13+
#
14+
# Unless required by applicable law or agreed to in writing, software
15+
# distributed under the License is distributed on an "AS IS" BASIS,
16+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17+
# See the License for the specific language governing permissions and
18+
# limitations under the License.
19+
#
20+
# Please send all bug reports to <geom@cs.unc.edu>.
21+
#
22+
# The authors may be contacted via:
23+
#
24+
# Jur van den Berg, Stephen J. Guy, Jamie Snape, Ming C. Lin, Dinesh Manocha
25+
# Dept. of Computer Science
26+
# 201 S. Columbia St.
27+
# Frederick P. Brooks, Jr. Computer Science Bldg.
28+
# Chapel Hill, N.C. 27599-3175
29+
# United States of America
30+
#
31+
# <https://gamma.cs.unc.edu/RVO2/>
32+
#
33+
34+
version = 1
35+
36+
[[analyzers]]
37+
name = "cxx"
38+
enabled = true
39+
40+
[analyzers.meta]
41+
compiler_flags = ["-std=c++98"]
42+
cyclomatic_complexity_threshold = "medium"
43+
include_paths = ["src/"]
44+
misra_compliance = true
45+
46+
[[analyzers]]
47+
name = "docker"
48+
enabled = true
49+
50+
[analyzers.meta]
51+
dockerfile_paths = ["Dockerfile"]
52+
trusted_registries = ["docker.io"]

.devcontainer/devcontainer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{
2+
"$schema": "https://raw.githubusercontent.com/devcontainers/spec/refs/heads/main/schemas/devContainer.schema.json",
23
"name": "RVO2",
34
"customizations": {
45
"vscode": {

.dockerignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
_build/
3838
.idea/
3939
.user.bazelrc
40+
.venv/
4041
bazel-*
4142
cmake-build-*/
4243
CMakeUserPresets.json

.gersemirc

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# -*- mode: yaml; -*-
2+
# vi: set ft=yaml:
3+
#
4+
# .gersemirc
5+
# RVO2 Library
6+
#
7+
# SPDX-FileCopyrightText: 2008 University of North Carolina at Chapel Hill
8+
# SPDX-License-Identifier: Apache-2.0
9+
#
10+
# Licensed under the Apache License, Version 2.0 (the "License");
11+
# you may not use this file except in compliance with the License.
12+
# You may obtain a copy of the License at
13+
#
14+
# https://www.apache.org/licenses/LICENSE-2.0
15+
#
16+
# Unless required by applicable law or agreed to in writing, software
17+
# distributed under the License is distributed on an "AS IS" BASIS,
18+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19+
# See the License for the specific language governing permissions and
20+
# limitations under the License.
21+
#
22+
# Please send all bug reports to <geom@cs.unc.edu>.
23+
#
24+
# The authors may be contacted via:
25+
#
26+
# Jur van den Berg, Stephen J. Guy, Jamie Snape, Ming C. Lin, Dinesh Manocha
27+
# Dept. of Computer Science
28+
# 201 S. Columbia St.
29+
# Frederick P. Brooks, Jr. Computer Science Bldg.
30+
# Chapel Hill, N.C. 27599-3175
31+
# United States of America
32+
#
33+
# <https://gamma.cs.unc.edu/RVO2/>
34+
#
35+
36+
# yaml-language-server: $schema=https://raw.githubusercontent.com/BlankSpruce/gersemi/0.27.2/gersemi/configuration.schema.json
37+
---
38+
indent: 2

.gitattributes

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,30 +52,33 @@
5252
*.css text diff=css linguist-documentation whitespace=trailing-space
5353
*.h text diff=cpp linguist-language=c++ whitespace-2
5454
*.html text diff=html linguist-documentation whitespace=trailing-space
55-
*.imp text linguist-language=json whitespace-2
55+
*.imp text linguist-language=yaml whitespace-2
5656
*.json text whitespace-2
5757
*.license text linguist-documentation whitespace-0
5858
*.md text diff=markdown whitespace-md
5959
*.options text diff=python linguist-language=meson whitespace-4
6060
*.pc.in text whitespace-2
61+
*.toml text whitespace-2
6162
*.txt text
63+
*.xml text whitespace-2
6264
*.yaml text whitespace-2
6365
*.yml text whitespace-2
6466

6567
.bazelignore text whitespace-4
6668
.bazelrc text whitespace-4
67-
.bazelversion text whitespace-4
69+
.bazelversion text whitespace-0
6870
.clang-format text whitespace-2
6971
.clang-tidy text whitespace-2
7072
.dockerignore text whitespace-2
7173
.editorconfig text whitespace-2
74+
.gersemirc text whitespace-2
7275
.gitattributes text export-ignore whitespace-2
7376
.gitignore text export-ignore whitespace-2
77+
.secrets.baseline text whitespace-2
7478
.zenodo.json export-ignore linguist-documentation
7579
Brewfile text diff=ruby export-ignore whitespace-4
7680
CMakeLists.txt whitespace-2
7781
CODEOWNERS text whitespace-2
78-
dep5 text linguist-documentation whitespace-1
7982
Dockerfile text whitespace-2
8083
LICENSE text linguist-documentation linguist-vendored whitespace-0
8184
README.md linguist-documentation

.github/actionlint-matcher.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"problemMatcher": [
3+
{
4+
"owner": "actionlint",
5+
"pattern": [
6+
{
7+
"regexp": "^(.+):(\\d+):(\\d+): (.+) \\[(.+)\\]$",
8+
"file": 1,
9+
"line": 2,
10+
"column": 3,
11+
"message": 4,
12+
"code": 5
13+
}
14+
]
15+
}
16+
]
17+
}

0 commit comments

Comments
 (0)