Skip to content

Commit 0e2de5d

Browse files
committed
ci: move manylinux2014 to GitLab, add gcc14-mpich-static job
Move manylinux2014 GCC 11 builds (mpich + serial) from GitHub Actions to the GitLab spack infrastructure (gitlab-ci-spack.yml), freeing a slot in the GitHub Actions matrix. Add Ubuntu 22.04 / GCC 14 / MPICH / static as the new job to fill the freed slot, providing static-linking coverage with the latest GCC. | OS | Compiler | MPI | Shared | |----|----------|-----|--------| | Ubuntu 22.04 | GCC 10 | MPICH | shared | | Ubuntu 22.04 | GCC 12 | MPICH | shared | | Ubuntu 22.04 | GCC 12 | OpenMPI | shared | | Ubuntu 22.04 | GCC 12 | serial | shared | | Ubuntu 22.04 | GCC 12 | serial | static | | Ubuntu 22.04 | GCC 14 | MPICH | shared | | Ubuntu 22.04 | GCC 14 | MPICH | static | | Ubuntu 22.04 | Clang 11 | OpenMPI | shared | | Ubuntu 22.04 | Clang 14 | MPICH | shared | | Ubuntu 22.04 | Clang 14 | serial | shared | | Ubuntu 22.04 | ROCm | serial | shared | | AlmaLinux 8 | Intel oneAPI 2023.2.1 | MPICH | shared | | macOS 15 | Xcode 16.4 | serial | shared | | macOS 15 | Xcode 16.4 | serial | static | | macOS 14 | Xcode 15.4 | serial | shared | | Windows 2022 | VS 2022 | MSMPI | shared | | Windows 2025 | VS 2022 | MSMPI | shared | | Windows 2025 | VS 2022 | serial | shared | | Windows 2025 | VS 2022 | serial | static |
1 parent 0b929c3 commit 0e2de5d

6 files changed

Lines changed: 100 additions & 76 deletions

File tree

.github/workflows/everything.yml

Lines changed: 6 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,11 @@ jobs:
154154
- os: ubuntu22.04
155155
compiler: clang14
156156
parallel: serial
157+
- os: ubuntu22.04
158+
compiler: gcc14
159+
parallel: mpich
160+
shared: static
161+
constrains: build_only
157162
- os: ubuntu22.04
158163
compiler: rocm
159164
parallel: serial
@@ -266,80 +271,6 @@ jobs:
266271
- name: Test
267272
run: gha/scripts/ci/gh-actions/run.sh test
268273

269-
manylinux2014:
270-
needs: [format, git_checks]
271-
if: needs.git_checks.outputs.num_code_changes > 0
272-
273-
runs-on: ubuntu-latest
274-
permissions:
275-
contents: read
276-
actions: write # for cache save
277-
container:
278-
image: ghcr.io/ornladios/adios2/ci-manylinux2014-${{ matrix.compiler }}:20260313
279-
options: --shm-size=1g
280-
env:
281-
GH_YML_JOBNAME: ${{ matrix.os }}-${{ matrix.compiler }}-${{ matrix.parallel }}
282-
GH_YML_BASE_OS: Linux
283-
GH_YML_MATRIX_OS: ${{ matrix.os }}
284-
GH_YML_MATRIX_COMPILER: ${{ matrix.compiler }}
285-
GH_YML_MATRIX_PARALLEL: ${{ matrix.parallel }}
286-
CCACHE_BASEDIR: "${GITHUB_WORKSPACE}"
287-
CCACHE_DIR: "${GITHUB_WORKSPACE}/.ccache"
288-
CCACHE_COMPRESS: true
289-
CCACHE_COMPRESSLEVEL: 6
290-
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
291-
292-
strategy:
293-
fail-fast: false
294-
matrix:
295-
os: [manylinux2014]
296-
compiler: [gcc11]
297-
parallel: [mpich, serial]
298-
299-
steps:
300-
301-
- name: Manual Checkout (gha)
302-
run: git clone --depth 1 "https://github.com/${{ github.repository }}.git" gha
303-
304-
- name: Manual Checkout (source)
305-
run: |
306-
mkdir -p source
307-
cd source
308-
git init
309-
git remote add origin "https://github.com/${{ github.repository }}.git"
310-
git fetch --depth 1 origin "${{ github.event.pull_request.head.sha }}"
311-
git checkout FETCH_HEAD
312-
313-
- name: Restore cache
314-
uses: actions/cache/restore@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4
315-
id: restore-cache
316-
with:
317-
path: .ccache
318-
key: ccache-${{ matrix.os }}-${{ matrix.compiler }}-${{ matrix.parallel }}-${{ github.sha }}
319-
restore-keys: |
320-
ccache-${{ matrix.os }}-${{ matrix.compiler }}-${{ matrix.parallel }}
321-
- name: Configure cache
322-
run: ccache -z
323-
- name: Setup
324-
run: gha/scripts/ci/gh-actions/linux-setup.sh
325-
- name: Update
326-
run: gha/scripts/ci/gh-actions/run.sh update
327-
- name: Configure
328-
run: gha/scripts/ci/gh-actions/run.sh configure
329-
- name: Build
330-
run: gha/scripts/ci/gh-actions/run.sh build
331-
- name: Print ccache statistics
332-
run: ccache -s | tee $GITHUB_STEP_SUMMARY
333-
- name: Save cache
334-
uses: actions/cache/save@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4
335-
if: ${{ github.ref_name == 'master' && steps.restore-cache.outputs.cache-hit != 'true' }}
336-
id: save-cache
337-
with:
338-
path: .ccache
339-
key: ccache-${{ matrix.os }}-${{ matrix.compiler }}-${{ matrix.parallel }}-${{ github.sha }}
340-
- name: Test
341-
run: gha/scripts/ci/gh-actions/run.sh test
342-
343274
macos:
344275
needs: [format, git_checks]
345276
if: needs.git_checks.outputs.num_code_changes > 0
@@ -697,7 +628,7 @@ jobs:
697628
#######################################
698629

699630
build_and_test:
700-
needs: [el8, ubuntu, manylinux2014, macos, windows, docker, contract]
631+
needs: [el8, ubuntu, macos, windows, docker, contract]
701632
runs-on: ubuntu-latest
702633
steps:
703634
- run: echo "All required jobs complete"

.gitlab/gitlab-ci-spack.yml

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
default:
77
interruptible: true
88
tags:
9-
- hpsf-gpu
9+
- uo-frank
10+
- x86_64
1011
- linux-5.15
1112

1213
# This file is used to define the GitLab CI/CD pipeline for the ADIOS2 project.
@@ -45,6 +46,40 @@ default:
4546
script:
4647
- bash scripts/ci/gitlab-ci/run.sh memcheck
4748

49+
.common-test:
50+
extends:
51+
- .common
52+
stage: test
53+
script:
54+
- bash scripts/ci/gitlab-ci/run.sh test
55+
56+
#===============================================================================
57+
build:uo-manylinux2014-gcc11-mpich:
58+
image:
59+
name: ghcr.io/ornladios/adios2/ci-manylinux2014-gcc11:20260313
60+
entrypoint: [""]
61+
extends: [.common-build]
62+
63+
build:uo-manylinux2014-gcc11-serial:
64+
image:
65+
name: ghcr.io/ornladios/adios2/ci-manylinux2014-gcc11:20260313
66+
entrypoint: [""]
67+
extends: [.common-build]
68+
69+
test:uo-manylinux2014-gcc11-mpich:
70+
image:
71+
name: ghcr.io/ornladios/adios2/ci-manylinux2014-gcc11:20260313
72+
entrypoint: [""]
73+
extends: [.common-test]
74+
needs: [build:uo-manylinux2014-gcc11-mpich]
75+
76+
test:uo-manylinux2014-gcc11-serial:
77+
image:
78+
name: ghcr.io/ornladios/adios2/ci-manylinux2014-gcc11:20260313
79+
entrypoint: [""]
80+
extends: [.common-test]
81+
needs: [build:uo-manylinux2014-gcc11-serial]
82+
4883
#===============================================================================
4984
build:uo-sanitizer-asan:
5085
image:
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
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-14)
10+
set(ENV{CXX} g++-14)
11+
set(ENV{FC} gfortran-14)
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_SHARED_LIBS=OFF
20+
BUILD_TESTING:BOOL=OFF
21+
ADIOS2_BUILD_EXAMPLES:BOOL=ON
22+
23+
ADIOS2_USE_AWSSDK:STRING=OFF
24+
ADIOS2_USE_Blosc2:BOOL=ON
25+
ADIOS2_USE_BZip2:BOOL=ON
26+
ADIOS2_USE_DataMan:BOOL=OFF
27+
ADIOS2_USE_Fortran:BOOL=ON
28+
ADIOS2_USE_HDF5:BOOL=ON
29+
ADIOS2_USE_MGARD:BOOL=OFF
30+
ADIOS2_USE_MPI:BOOL=ON
31+
ADIOS2_USE_Python:BOOL=ON
32+
ADIOS2_USE_SZ:BOOL=ON
33+
ADIOS2_USE_ZeroMQ:STRING=OFF
34+
ADIOS2_USE_ZFP: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_RELEASE:STRING=-Wall -Os -DNDEBUG
43+
CMAKE_CXX_FLAGS_RELEASE:STRING=-Wall -Os -DNDEBUG
44+
CMAKE_Fortran_FLAGS_RELEASE:STRING=-Wall -Os
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+
set(CTEST_BUILD_CONFIGURATION Release)
52+
set(CTEST_CMAKE_GENERATOR "Ninja")
53+
list(APPEND CTEST_UPDATE_NOTES_FILES "${CMAKE_CURRENT_LIST_FILE}")
54+
include(${CMAKE_CURRENT_LIST_DIR}/ci-common.cmake)
File renamed without changes.

scripts/ci/cmake/ci-manylinux2014-gcc12-serial.cmake renamed to scripts/ci/cmake/ci-uo-manylinux2014-gcc11-serial.cmake

File renamed without changes.

scripts/ci/images/Dockerfile.ci-manylinux2014-gcc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ RUN sed -i \
5252
update-alternatives --install /usr/bin/gfortran gfortran \
5353
/opt/rh/devtoolset-${GCC_VERSION}/root/usr/bin/gfortran ${GCC_VERSION}
5454

55+
RUN ln -s /opt/python/cp312-cp312/bin/python3 /usr/local/bin/python3 && \
56+
ln -s /opt/python/cp312-cp312/bin/python3 /usr/local/bin/python && \
57+
/opt/python/cp312-cp312/bin/pip install request
58+
5559
# Install the latest CMake release binary
5660
WORKDIR /opt/cmake
5761
RUN curl -sL https://cmake.org/files/LatestRelease/$(curl https://cmake.org/files/LatestRelease/ | sed -n '/-rc[0-9]\+/d;/linux-x86_64.tar.gz/s/.*>\(cmake[^<]*\)<.*/\1/p' | sort | tail -1) | tar --strip-components=1 -xzv

0 commit comments

Comments
 (0)