Skip to content

Commit 1d6e68e

Browse files
authored
Merge branch 'master' into valgrind-all
2 parents 891a2db + 952468c commit 1d6e68e

41 files changed

Lines changed: 776 additions & 437 deletions

File tree

Some content is hidden

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

.clang-tidy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@ Checks: >
2424
-misc-const-correctness,
2525
-misc-non-private-member-variables-in-classes,
2626
-modernize-avoid-c-arrays,
27-
-modernize-loop-convert,
2827
-modernize-use-trailing-return-type,
2928
-portability-template-virtual-member-function,
3029
-readability-magic-numbers
3130
3231
WarningsAsErrors: "*"
32+
HeaderFilterRegex: '.*/(modules|tasks)/.*'
3333

3434
CheckOptions:
3535
- key: readability-identifier-naming.ClassCase

.editorconfig

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
end_of_line = lf
6+
insert_final_newline = true
7+
trim_trailing_whitespace = true
8+
indent_style = space
9+
indent_size = 4
10+
11+
[*.{cpp,h,hpp,c}]
12+
indent_size = 2
13+
14+
[*.{yml,yaml}]
15+
indent_size = 2
16+
17+
[*.py]
18+
indent_size = 4
19+
20+
[Makefile]
21+
indent_style = tab
22+
23+
[{CMakeLists.txt,*.cmake}]
24+
indent_size = 2
25+
26+
[*.{md,rst}]
27+
trim_trailing_whitespace = false

.github/labeler.yml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
'task:all':
2-
- "tasks/all/**"
2+
- "tasks/**/all"
33
'task:mpi':
4-
- "tasks/mpi/**"
4+
- "tasks/**/mpi"
55
'task:omp':
6-
- "tasks/omp/**"
6+
- "tasks/**/omp"
77
'task:seq':
8-
- "tasks/seq/**"
8+
- "tasks/**/seq"
99
'task:stl':
10-
- "tasks/stl/**"
10+
- "tasks/**/stl"
1111
'task:tbb':
12-
- "tasks/tbb/**"
12+
- "tasks/**/tbb"
13+
task:
14+
- "tasks/**"
1315
ci:
1416
- ".github/**"
1517
- "appveyor.yml"

.github/workflows/docker.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
on:
2+
push:
3+
branches:
4+
- master
5+
paths:
6+
- 'docker/**'
7+
pull_request_target:
8+
paths:
9+
- 'docker/**'
10+
11+
permissions:
12+
contents: read
13+
packages: write
14+
15+
jobs:
16+
build-and-push:
17+
name: Build & Push Docker Image
18+
runs-on: ubuntu-latest
19+
20+
steps:
21+
- name: Check out code
22+
uses: actions/checkout@v3
23+
24+
- name: Set up QEMU
25+
uses: docker/setup-qemu-action@v2
26+
with:
27+
platforms: linux/amd64,linux/arm64
28+
29+
- name: Set up Docker Buildx
30+
uses: docker/setup-buildx-action@v2
31+
32+
- name: Log in to GHCR
33+
uses: docker/login-action@v2
34+
with:
35+
registry: ghcr.io
36+
username: ${{ github.actor }}
37+
password: ${{ secrets.DOCKER_TOKEN }}
38+
39+
- name: Build and push multi-arch image
40+
uses: docker/build-push-action@v4
41+
with:
42+
context: .
43+
file: ./docker/ubuntu.Dockerfile
44+
platforms: linux/amd64,linux/arm64
45+
push: true # ${{ github.ref == 'refs/heads/master' }}
46+
tags: ghcr.io/learning-process/ppc-ubuntu:latest

.github/workflows/mac.yml

Lines changed: 11 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ on:
22
workflow_call:
33

44
jobs:
5-
macos-clang-build:
5+
clang-build:
66
runs-on: macOS-latest
77
strategy:
88
matrix:
@@ -17,12 +17,9 @@ jobs:
1717
xcode-version: 'latest-stable'
1818
- name: Setup environment
1919
run: |
20-
brew update-reset
21-
brew install ninja mpich llvm
22-
brew install libomp
20+
brew update
21+
brew install ninja mpich llvm libomp openssl
2322
brew link libomp --overwrite --force
24-
brew install openssl
25-
brew link openssl --overwrite --force
2623
- name: ccache
2724
uses: hendrikmuhs/ccache-action@v1.2
2825
with:
@@ -47,9 +44,9 @@ jobs:
4744
with:
4845
path: install
4946
name: ${{ matrix.build_type == 'Debug' && 'macos-clang-debug-install' || 'macos-clang-install' }}
50-
macos-clang-test:
47+
clang-test:
5148
needs:
52-
- macos-clang-build
49+
- clang-build
5350
runs-on: macOS-latest
5451
steps:
5552
- uses: actions/checkout@v4
@@ -59,12 +56,9 @@ jobs:
5956
xcode-version: 'latest-stable'
6057
- name: Setup environment
6158
run: |
62-
brew update-reset
63-
brew install ninja mpich llvm
64-
brew install libomp
59+
brew update
60+
brew install ninja mpich llvm libomp openssl
6561
brew link libomp --overwrite --force
66-
brew install openssl
67-
brew link openssl --overwrite --force
6862
- name: Download installed package
6963
uses: actions/download-artifact@v4
7064
with:
@@ -81,9 +75,9 @@ jobs:
8175
run: python3 scripts/run_tests.py --running-type="threads" --counts 1 2 3 4
8276
env:
8377
PPC_NUM_PROC: 1
84-
macos-clang-test-extended:
78+
clang-test-extended:
8579
needs:
86-
- macos-clang-test
80+
- clang-test
8781
runs-on: macOS-latest
8882
steps:
8983
- uses: actions/checkout@v4
@@ -93,12 +87,9 @@ jobs:
9387
xcode-version: 'latest-stable'
9488
- name: Setup environment
9589
run: |
96-
brew update-reset
97-
brew install ninja mpich llvm
98-
brew install libomp
90+
brew update
91+
brew install ninja mpich llvm libomp openssl
9992
brew link libomp --overwrite --force
100-
brew install openssl
101-
brew link openssl --overwrite --force
10293
- name: Download installed package
10394
uses: actions/download-artifact@v4
10495
with:

.github/workflows/main.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,8 @@ jobs:
3636
- mac
3737
- windows
3838
uses: ./.github/workflows/perf.yml
39+
40+
pages:
41+
needs:
42+
- perf
43+
uses: ./.github/workflows/pages.yml

.github/workflows/pages.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
name: Pages
22

33
on:
4-
push:
5-
pull_request:
4+
workflow_call:
65
workflow_dispatch:
76

87
permissions:
@@ -110,6 +109,11 @@ jobs:
110109
with:
111110
name: scoreboard
112111
path: ./scoreboard/
112+
- name: Download coverage artifact
113+
uses: actions/download-artifact@v4
114+
with:
115+
name: cov-report
116+
path: ./coverage/
113117
- name: Upload artifact
114118
uses: actions/upload-pages-artifact@v3
115119
with:

.github/workflows/pre-commit.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: Pre-commit checks
2+
3+
on:
4+
pull_request:
5+
6+
jobs:
7+
pre-commit:
8+
runs-on: ubuntu-24.04
9+
steps:
10+
- uses: actions/checkout@v4
11+
with:
12+
submodules: recursive
13+
fetch-depth: 0
14+
- name: Setup environment
15+
run: |
16+
sudo apt-get update
17+
sudo apt-get install --no-install-recommends -y \
18+
gcc-14 g++-14 ninja-build python3-pip clang-format-16
19+
python3 -m pip install -r requirements.txt
20+
- name: Run pre-commit checks
21+
run: |
22+
git fetch origin ${{ github.base_ref }}:${{ github.base_ref }}
23+
pre-commit run --from-ref ${{ github.base_ref }} --to-ref HEAD

.github/workflows/ubuntu.yml

Lines changed: 31 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ on:
22
workflow_call:
33

44
jobs:
5-
ubuntu-gcc-build:
5+
gcc-build:
66
runs-on: ${{ matrix.os }}
77
strategy:
88
matrix:
@@ -53,9 +53,9 @@ jobs:
5353
name: ${{ matrix.build_type == 'Debug' &&
5454
format('ubuntu-gcc-debug-install-{0}', matrix.os) ||
5555
format('ubuntu-gcc-install-{0}', matrix.os) }}
56-
ubuntu-gcc-test:
56+
gcc-test:
5757
needs:
58-
- ubuntu-gcc-build
58+
- gcc-build
5959
runs-on: ${{ matrix.os }}
6060
strategy:
6161
matrix:
@@ -83,9 +83,9 @@ jobs:
8383
run: python3 scripts/run_tests.py --running-type="threads" --counts 1 2 3 4
8484
env:
8585
PPC_NUM_PROC: 1
86-
ubuntu-gcc-test-extended:
86+
gcc-test-extended:
8787
needs:
88-
- ubuntu-gcc-test
88+
- gcc-test
8989
runs-on: ${{ matrix.os }}
9090
strategy:
9191
matrix:
@@ -109,7 +109,7 @@ jobs:
109109
run: python3 scripts/run_tests.py --running-type="threads" --counts 5 7 11 13
110110
env:
111111
PPC_NUM_PROC: 1
112-
ubuntu-clang-build:
112+
clang-build:
113113
runs-on: ${{ matrix.os }}
114114
strategy:
115115
matrix:
@@ -153,9 +153,9 @@ jobs:
153153
with:
154154
path: install
155155
name: ubuntu-clang-install-${{ matrix.os }}
156-
ubuntu-clang-test:
156+
clang-test:
157157
needs:
158-
- ubuntu-clang-build
158+
- clang-build
159159
runs-on: ${{ matrix.os }}
160160
strategy:
161161
matrix:
@@ -185,9 +185,9 @@ jobs:
185185
run: python3 scripts/run_tests.py --running-type="threads" --counts 1 2 3 4
186186
env:
187187
PPC_NUM_PROC: 1
188-
ubuntu-clang-test-extended:
188+
clang-test-extended:
189189
needs:
190-
- ubuntu-clang-test
190+
- clang-test
191191
runs-on: ${{ matrix.os }}
192192
strategy:
193193
matrix:
@@ -213,9 +213,9 @@ jobs:
213213
run: python3 scripts/run_tests.py --running-type="threads" --counts 5 7 11 13
214214
env:
215215
PPC_NUM_PROC: 1
216-
ubuntu-clang-sanitizer-build:
216+
clang-sanitizer-build:
217217
needs:
218-
- ubuntu-clang-build
218+
- clang-build
219219
runs-on: ${{ matrix.os }}
220220
strategy:
221221
matrix:
@@ -242,7 +242,7 @@ jobs:
242242
run: >
243243
cmake -S . -B build -G Ninja
244244
-D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
245-
-D CMAKE_BUILD_TYPE=RELEASE
245+
-D CMAKE_BUILD_TYPE=RelWithDebInfo
246246
-D ENABLE_ADDRESS_SANITIZER=ON -D ENABLE_UB_SANITIZER=ON -D ENABLE_LEAK_SANITIZER=ON
247247
-D CMAKE_INSTALL_PREFIX=install
248248
env:
@@ -262,9 +262,9 @@ jobs:
262262
with:
263263
path: install
264264
name: ubuntu-clang-sanitizer-install-${{ matrix.os }}
265-
ubuntu-clang-sanitizer-test:
265+
clang-sanitizer-test:
266266
needs:
267-
- ubuntu-clang-sanitizer-build
267+
- clang-sanitizer-build
268268
runs-on: ${{ matrix.os }}
269269
strategy:
270270
matrix:
@@ -301,9 +301,9 @@ jobs:
301301
PPC_ASAN_RUN: 1
302302
ASAN_OPTIONS: abort_on_error=1
303303
UBSAN_OPTIONS: halt_on_error=1
304-
ubuntu-clang-sanitizer-test-extended:
304+
clang-sanitizer-test-extended:
305305
needs:
306-
- ubuntu-clang-sanitizer-test
306+
- clang-sanitizer-test
307307
runs-on: ${{ matrix.os }}
308308
strategy:
309309
matrix:
@@ -331,10 +331,10 @@ jobs:
331331
env:
332332
PPC_NUM_PROC: 1
333333
PPC_ASAN_RUN: 1
334-
ubuntu-gcc-build-codecov:
334+
gcc-build-codecov:
335335
needs:
336-
- ubuntu-gcc-test-extended
337-
- ubuntu-clang-test-extended
336+
- gcc-test-extended
337+
- clang-test-extended
338338
runs-on: ubuntu-24.04
339339
steps:
340340
- uses: actions/checkout@v4
@@ -390,7 +390,18 @@ jobs:
390390
with:
391391
files: coverage.xml
392392
- name: Upload coverage report artifact
393+
id: upload-cov
393394
uses: actions/upload-artifact@v4
394395
with:
395396
name: cov-report
396397
path: 'cov-report'
398+
- name: Comment coverage report link
399+
# TODO: Support PRs from forks too
400+
if: ${{ github.event_name == 'pull_request' && !github.event.pull_request.head.repo.fork }}
401+
uses: peter-evans/create-or-update-comment@v4
402+
with:
403+
token: ${{ secrets.GITHUB_TOKEN }}
404+
issue-number: ${{ github.event.pull_request.number }}
405+
body: |
406+
Coverage report is available for download
407+
[here](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})

0 commit comments

Comments
 (0)