Skip to content

Commit

Permalink
Merge pull request #83 from paulsengroup/update-ci
Browse files Browse the repository at this point in the history
- Add clang-16, clang-17 and ggc-13 to CI
- Build Dockerfile using clang-17
- Use clang-tidy-17 for linting
  • Loading branch information
robomics authored Dec 9, 2023
2 parents 9811e3a + 057d14e commit 73da27e
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 36 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/build-dockerfile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,8 @@ jobs:
OS_NAME='ubuntu'
OS_VERSION='22.04'
C_COMPILER='gcc-12'
CXX_COMPILER='g++-12'
C_COMPILER='clang-17'
CXX_COMPILER='clang++-17'
BUILD_BASE_IMAGE="ghcr.io/paulsengroup/ci-docker-images/$OS_NAME-$OS_VERSION-cxx-$C_COMPILER:latest"
TEST_BASE_IMAGE="$BUILD_BASE_IMAGE"
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ jobs:
needs: cache-test-dataset
runs-on: ubuntu-latest
container:
image: ghcr.io/paulsengroup/ci-docker-images/ubuntu-22.04-cxx-gcc-12
image: ghcr.io/paulsengroup/ci-docker-images/ubuntu-23.04-cxx-gcc-13
options: '--user=root'

steps:
Expand Down Expand Up @@ -226,7 +226,7 @@ jobs:
with:
fail_ci_if_error: true
gcov: true
gcov_executable: gcov-12
gcov_executable: gcov-13
os: linux
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/fuzzy-testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ jobs:
}

container:
image: ghcr.io/paulsengroup/ci-docker-images/ubuntu-22.04-cxx-clang-15
image: ghcr.io/paulsengroup/ci-docker-images/ubuntu-22.04-cxx-clang-16
options: "--user=root"

env:
Expand Down Expand Up @@ -193,8 +193,8 @@ jobs:
working-directory: hictkpy
run: |
pip install --upgrade pip setuptools wheel pybind11
env CC=clang-15 \
CXX=clang++-15 \
env CC=clang-16 \
CXX=clang++-16 \
CMAKE_ARGS="-DCMAKE_PREFIX_PATH=$PWD/../build" \
HICTKPY_SETUP_SKIP_CONAN=1 \
pip install . -v
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/run-clang-tidy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ jobs:
run-clang-tidy:
runs-on: ubuntu-latest
container:
image: ghcr.io/paulsengroup/ci-docker-images/ubuntu-22.04-cxx-clang-15
image: ghcr.io/paulsengroup/ci-docker-images/ubuntu-22.04-cxx-clang-17
options: '--user=root'

steps:
Expand Down
60 changes: 32 additions & 28 deletions .github/workflows/ubuntu-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,47 +71,51 @@ jobs:
var includes = []
// Debug builds (short CI)
includes.push({ compiler: 'gcc-8', os: 'ubuntu-20.04', generator: 'Ninja', cmake: '3.26.*', conan: '2.0.*', build_type: 'Debug', developer_mode: 'OFF' })
includes.push({ compiler: 'gcc-12', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.26.*', conan: '2.0.*', build_type: 'Debug', developer_mode: 'ON' })
includes.push({ compiler: 'clang-8', os: 'ubuntu-20.04', generator: 'Ninja', cmake: '3.26.*', conan: '2.0.*', build_type: 'Debug', developer_mode: 'OFF' })
includes.push({ compiler: 'clang-15', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.26.*', conan: '2.0.*', build_type: 'Debug', developer_mode: 'ON' })
includes.push({ compiler: 'gcc-8', os: 'ubuntu-20.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Debug', developer_mode: 'OFF' })
includes.push({ compiler: 'gcc-13', os: 'ubuntu-23.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Debug', developer_mode: 'ON' })
includes.push({ compiler: 'clang-8', os: 'ubuntu-20.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Debug', developer_mode: 'OFF' })
includes.push({ compiler: 'clang-17', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Debug', developer_mode: 'ON' })
// Release builds (short CI)
includes.push({ compiler: 'gcc-12', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.26.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'ON' })
includes.push({ compiler: 'clang-15', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.26.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'ON' })
includes.push({ compiler: 'gcc-13', os: 'ubuntu-23.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'ON' })
includes.push({ compiler: 'clang-17', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'ON' })
if (ci_short) {
return { include: includes }
}
// Debug builds (long CI)
includes.push({ compiler: 'gcc-9', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.26.*', conan: '2.0.*', build_type: 'Debug', developer_mode: 'OFF' })
includes.push({ compiler: 'gcc-10', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.26.*', conan: '2.0.*', build_type: 'Debug', developer_mode: 'OFF' })
includes.push({ compiler: 'gcc-11', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.26.*', conan: '2.0.*', build_type: 'Debug', developer_mode: 'ON' })
includes.push({ compiler: 'clang-9', os: 'ubuntu-20.04', generator: 'Ninja', cmake: '3.26.*', conan: '2.0.*', build_type: 'Debug', developer_mode: 'OFF' })
includes.push({ compiler: 'clang-10', os: 'ubuntu-20.04', generator: 'Ninja', cmake: '3.26.*', conan: '2.0.*', build_type: 'Debug', developer_mode: 'OFF' })
includes.push({ compiler: 'clang-11', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.26.*', conan: '2.0.*', build_type: 'Debug', developer_mode: 'OFF' })
includes.push({ compiler: 'clang-12', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.26.*', conan: '2.0.*', build_type: 'Debug', developer_mode: 'OFF' })
includes.push({ compiler: 'clang-13', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.26.*', conan: '2.0.*', build_type: 'Debug', developer_mode: 'ON' })
includes.push({ compiler: 'clang-14', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.26.*', conan: '2.0.*', build_type: 'Debug', developer_mode: 'ON' })
includes.push({ compiler: 'gcc-9', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Debug', developer_mode: 'OFF' })
includes.push({ compiler: 'gcc-10', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Debug', developer_mode: 'OFF' })
includes.push({ compiler: 'gcc-11', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Debug', developer_mode: 'ON' })
includes.push({ compiler: 'clang-9', os: 'ubuntu-20.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Debug', developer_mode: 'OFF' })
includes.push({ compiler: 'clang-10', os: 'ubuntu-20.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Debug', developer_mode: 'OFF' })
includes.push({ compiler: 'clang-11', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Debug', developer_mode: 'OFF' })
includes.push({ compiler: 'clang-12', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Debug', developer_mode: 'OFF' })
includes.push({ compiler: 'clang-13', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Debug', developer_mode: 'ON' })
includes.push({ compiler: 'clang-14', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Debug', developer_mode: 'ON' })
includes.push({ compiler: 'clang-15', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Debug', developer_mode: 'ON' })
includes.push({ compiler: 'clang-16', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Debug', developer_mode: 'ON' })
// Release builds (long CI)
includes.push({ compiler: 'gcc-8', os: 'ubuntu-20.04', generator: 'Ninja', cmake: '3.26.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'OFF' })
includes.push({ compiler: 'gcc-9', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.26.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'OFF' })
includes.push({ compiler: 'gcc-10', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.26.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'ON' })
includes.push({ compiler: 'gcc-11', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.26.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'ON' })
includes.push({ compiler: 'clang-8', os: 'ubuntu-20.04', generator: 'Ninja', cmake: '3.26.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'OFF' })
includes.push({ compiler: 'clang-9', os: 'ubuntu-20.04', generator: 'Ninja', cmake: '3.26.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'OFF' })
includes.push({ compiler: 'clang-10', os: 'ubuntu-20.04', generator: 'Ninja', cmake: '3.26.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'OFF' })
includes.push({ compiler: 'clang-11', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.26.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'OFF' })
includes.push({ compiler: 'clang-12', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.26.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'ON' })
includes.push({ compiler: 'clang-13', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.26.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'ON' })
includes.push({ compiler: 'clang-14', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.26.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'ON' })
includes.push({ compiler: 'gcc-8', os: 'ubuntu-20.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'OFF' })
includes.push({ compiler: 'gcc-9', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'OFF' })
includes.push({ compiler: 'gcc-10', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'ON' })
includes.push({ compiler: 'gcc-11', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'ON' })
includes.push({ compiler: 'clang-8', os: 'ubuntu-20.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'OFF' })
includes.push({ compiler: 'clang-9', os: 'ubuntu-20.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'OFF' })
includes.push({ compiler: 'clang-10', os: 'ubuntu-20.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'OFF' })
includes.push({ compiler: 'clang-11', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'OFF' })
includes.push({ compiler: 'clang-12', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'ON' })
includes.push({ compiler: 'clang-13', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'ON' })
includes.push({ compiler: 'clang-14', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'ON' })
includes.push({ compiler: 'clang-15', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'ON' })
includes.push({ compiler: 'clang-16', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.27.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'ON' })
// Make sure project builds with CMake 3.25
includes.push({ compiler: 'clang-15', os: 'ubuntu-22.04', generator: 'Ninja', cmake: '3.25.2', conan: '2.0.*', build_type: 'Release', developer_mode: 'OFF' })
includes.push({ compiler: 'clang-17', os: 'ubuntu-23.04', generator: 'Ninja', cmake: '3.25.2', conan: '2.0.*', build_type: 'Release', developer_mode: 'OFF' })
// Make sure project builds with make
includes.push({ compiler: 'clang-15', os: 'ubuntu-22.04', generator: 'Unix Makefiles', cmake: '3.26.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'OFF' })
includes.push({ compiler: 'clang-17', os: 'ubuntu-23.04', generator: 'Unix Makefiles', cmake: '3.27.*', conan: '2.0.*', build_type: 'Release', developer_mode: 'OFF' })
return { include: includes }
Expand Down

0 comments on commit 73da27e

Please sign in to comment.