Skip to content

Commit 53f8e3f

Browse files
committed
CI: add ubuntu/gcc12/mpich job using only external dependencies
1 parent 28c0467 commit 53f8e3f

2 files changed

Lines changed: 120 additions & 1 deletion

File tree

.github/workflows/everything.yml

Lines changed: 61 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,66 @@ jobs:
211211
if: ${{ matrix.constrains != 'build_only' }}
212212
run: gha/scripts/ci/gh-actions/run.sh test
213213

214+
ubuntu_ext:
215+
needs: [format, git_checks]
216+
if: needs.git_checks.outputs.num_code_changes > 0
217+
218+
runs-on: ubuntu-22.04
219+
permissions:
220+
contents: read
221+
actions: write # for cache save
222+
container:
223+
image: ghcr.io/ornladios/adios2:ci-spack-ubuntu22.04-gcc12
224+
options: --shm-size=1g
225+
env:
226+
GH_YML_JOBNAME: ubuntu22.04-gcc12-ext-mpich
227+
GH_YML_BASE_OS: Linux
228+
GH_YML_MATRIX_OS: ubuntu22.04
229+
GH_YML_MATRIX_COMPILER: gcc12
230+
GH_YML_MATRIX_PARALLEL: mpich
231+
CCACHE_BASEDIR: "${GITHUB_WORKSPACE}"
232+
CCACHE_DIR: "${GITHUB_WORKSPACE}/.ccache"
233+
CCACHE_COMPRESS: true
234+
CCACHE_COMPRESSLEVEL: 6
235+
236+
steps:
237+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4
238+
with:
239+
path: gha
240+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4
241+
with:
242+
ref: ${{ github.event.pull_request.head.sha }}
243+
path: source
244+
- name: Restore cache
245+
uses: actions/cache/restore@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4
246+
id: restore-cache
247+
with:
248+
path: .ccache
249+
key: ccache-ubuntu22.04-gcc12-ext-mpich-${{ github.sha }}
250+
restore-keys: |
251+
ccache-ubuntu22.04-gcc12-ext-mpich
252+
- name: Configure cache
253+
run: ccache -z
254+
- name: Setup
255+
run: gha/scripts/ci/gh-actions/linux-setup.sh
256+
- name: Update
257+
run: gha/scripts/ci/gh-actions/run.sh update
258+
- name: Configure
259+
run: gha/scripts/ci/gh-actions/run.sh configure
260+
- name: Build
261+
run: gha/scripts/ci/gh-actions/run.sh build
262+
- name: Print ccache statistics
263+
run: ccache -s | tee $GITHUB_STEP_SUMMARY
264+
- name: Save cache
265+
uses: actions/cache/save@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4
266+
if: ${{ github.ref_name == 'master' && steps.restore-cache.outputs.cache-hit != 'true' }}
267+
id: save-cache
268+
with:
269+
path: .ccache
270+
key: ccache-ubuntu22.04-gcc12-ext-mpich-${{ github.sha }}
271+
- name: Test
272+
run: gha/scripts/ci/gh-actions/run.sh test
273+
214274
el8:
215275
needs: [format, git_checks]
216276
if: needs.git_checks.outputs.num_code_changes > 0
@@ -632,7 +692,7 @@ jobs:
632692
#######################################
633693

634694
build_and_test:
635-
needs: [el8, ubuntu, macos, windows, docker, contract]
695+
needs: [el8, ubuntu, ubuntu_ext, macos, windows, docker, contract]
636696
runs-on: ubuntu-latest
637697
steps:
638698
- run: echo "All required jobs complete"
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# SPDX-FileCopyrightText: 2026 Oak Ridge National Laboratory and Contributors
2+
#
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
include(ProcessorCount)
6+
ProcessorCount(NCPUS)
7+
math(EXPR N2CPUS "${NCPUS}*2")
8+
9+
set(ENV{CC} gcc)
10+
set(ENV{CXX} g++)
11+
set(ENV{FC} gfortran)
12+
13+
execute_process(
14+
COMMAND "python3-config" "--prefix"
15+
OUTPUT_VARIABLE PY_ROOT
16+
OUTPUT_STRIP_TRAILING_WHITESPACE)
17+
18+
set(dashboard_cache "
19+
BUILD_TESTING:BOOL=ON
20+
ADIOS2_BUILD_EXAMPLES:BOOL=ON
21+
22+
ADIOS2_USE_BZip2:BOOL=ON
23+
ADIOS2_USE_Blosc2:BOOL=ON
24+
ADIOS2_USE_DataMan:BOOL=ON
25+
ADIOS2_USE_Fortran:BOOL=ON
26+
ADIOS2_USE_HDF5:BOOL=ON
27+
ADIOS2_USE_MPI:BOOL=ON
28+
ADIOS2_USE_Python:BOOL=ON
29+
ADIOS2_USE_SZ:BOOL=ON
30+
ADIOS2_USE_ZeroMQ:STRING=ON
31+
ADIOS2_USE_ZFP:BOOL=ON
32+
33+
ADIOS2_USE_EXTERNAL_DEPENDENCIES:BOOL=ON
34+
ADIOS2_USE_EXTERNAL_EVPATH:BOOL=ON
35+
36+
Python_ROOT_DIR:PATH=${PY_ROOT}
37+
Python_FIND_STRATEGY:STRING=LOCATION
38+
Python_FIND_FRAMEWORK:STRING=FIRST
39+
40+
CMAKE_C_COMPILER_LAUNCHER=ccache
41+
CMAKE_CXX_COMPILER_LAUNCHER=ccache
42+
CMAKE_C_FLAGS:STRING=-Wall
43+
CMAKE_CXX_FLAGS:STRING=-Wall
44+
CMAKE_Fortran_FLAGS:STRING=-Wall
45+
46+
OpenMP_gomp_LIBRARY:FILEPATH=/spack/var/spack/environments/adios2-ci-mpich/.spack-env/view/lib/libgomp.so.1
47+
48+
MPIEXEC_MAX_NUMPROCS:STRING=${N2CPUS}
49+
")
50+
51+
# We have a dedicated build for gcc8 + serial, so we exclude ".Serial$"
52+
# TODO: The Kill* and PreciousTimeStep tests fail (due to timeout) when
53+
# TODO: adios2 is built "--with-device=ch3:sock:tcp". Once this is fixed
54+
# TODO: in the mpi_dp, we can re-enable these tests.
55+
set(CTEST_TEST_ARGS EXCLUDE "KillReader|KillWriter|PreciousTimestep|.Serial$")
56+
57+
set(CTEST_CMAKE_GENERATOR "Ninja")
58+
list(APPEND CTEST_UPDATE_NOTES_FILES "${CMAKE_CURRENT_LIST_FILE}")
59+
include(${CMAKE_CURRENT_LIST_DIR}/ci-common.cmake)

0 commit comments

Comments
 (0)